You can't chain those, first of all.

And second, a lot of the stuff that seems redundant does garbage collection and creates cross-browser code.

Ryan Florence


On Aug 6, 2009, at 7:30 PM, Steve Onnis wrote:

Aaron

You could say the same thing about a lot of the mootool array methods though couldnt you?

array.empty() can just be array = []
array.each() can be done in a simple "for" loop
array.getLast() can just be array[array.length-1]

could go on but wont as i am sure you get the point.

the framework is meant to make things easier, give you an easier simpler way to do things......wouldnt you agree?

From: Aaron Newton [mailto:aa...@iminta.com]
Sent: Friday, 7 August 2009 1:28 AM
To: mootools-users@googlegroups.com
Subject: [Moo] Re: each error on IE

We aren't going to add a method to array for removing items at an index. There is already a native method for this and it works just fine.

2009/8/6 Fábio M. Costa <fabiomco...@gmail.com>
This addition can be discussed.
I think that splice is kind of complicated for ppl who never saw it before, ive never seen it before javascript.

Dont know, you have to convince the awesome guys upstairs.


--
Fábio Miranda Costa
Solucione Sistemas
Front-End Engineer
http://meiocodigo.com


On Thu, Aug 6, 2009 at 11:59 AM, Steve Onnis <st...@cfcentral.com.au> wrote:

In addition you could make it easier to use like this

Array.implement({
       deleteAt : function (index) {
               if (index > this.length-1) return;
               this.splice(index,1);
               }
       });

And then just call....


test_array.deleteAt(0);

To be honest I am very surprised something like this isnt already in the
framework


Another option also is to leave what you have and do this...

delete test_array[0];
test_array.clean();

I wouldn't but its an option


Steve

-----Original Message-----
From: Steve Onnis [mailto:st...@cfcentral.com.au]
Sent: Friday, 7 August 2009 12:41 AM
To: mootools-users@googlegroups.com
Subject: [Moo] Re: each error on IE


In the instance you have provided below yes it will cause an error as by the time you loop over "test_array" the first index is no longer there and is undefined. Even though you are deleting it the length of the array is still 2 so the first time it loops, "item" will be undefined and because it is
undefined or whatever, the method "each()" is not available for a null
value.

To do it properly you should use splice()
(https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objec
ts/Array/splice)

You should really tidy up your array creation also


// Create the arrays
array0 = ['00','01'];
array1 = ['10','11'];

// COPY the arrays into new memory space to make sure
// dont have a conflict when you remove the array later
test_array = [$A(array0), $A(array1)] ;

// Remove the first item in the array
test_array.splice(0,1)

// Test output
test_array.each(function(items, row){
       items.each(function(i, r){
       document.write(r + " : " + i + "<br />" );
       });
});


Steve


-----Original Message-----
From: Shrike [mailto:martin.sile...@gmail.com]
Sent: Thursday, 6 August 2009 8:39 PM
To: MooTools Users
Subject: [Moo] each error on IE


Hello,

can you help me to solve the IE error on this script?

http://mooshell.net/gYxKu/

no errors with firefox or chrome

var array0 = new Array();
array0[0] = '00';
array0[1] = '01';

var array1 = new Array();
array1[0] = '10';
array1[1] = '11';

var test_array = new Array();

test_array[0] = array0;
test_array[1] = array1;

delete test_array[0];

test_array.each(function(items, row){

       items.each(function(i, r){ // IE error

       alert(i);

       });

});





Reply via email to