想請教一下 下面程式碼
filterArray01 與 filterArray02 最終都是空陣列
也就是說沒有符合的值
是因為我的索引非正整數的關係?(只能用foreach嗎?)
還是有其他我沒注意的問題?
謝謝
var mainArray = new Array();
mainArray['a']=1;
mainArray['b']=2;
mainArray['c']=3;
mainArray['d']=4;
var filterArray01 = mainArray.filter( function(value,key){
if(value % 2 ==0) return true;
});
var filterArray02 = mainArray.filter( function(value,key){
if(key == 'b') return true;
});
你的 array 跟我認識的 array 不太一樣
你可以補上
typeof mainArray
看 mainArray 的 type 變成什麼了
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
補充下看到的
mix array with object 的討論
陣列當物件用,物件當陣列用...
最近的邦友真的愈來愈有創意了~
入門就挑到 js 這個大魔王
也算他運氣不好XD
typeof mainArray 是物件
可是試了一下
var colors = new Array("Red", "Green", "Blue");
typeof colors 也是物件
不過colors.filter(function(value,key){if(value=='Green')return true;});
卻能成功返回
老實說還是不懂.....
綜合上面的討論,我認為:
myArray['x']=1
這類的敘述時,其實是添加一個 myArray.x 屬性。但不影響原先 Array 的功能。也許這可以參考:繼承與原型鏈