所以,我有一个数组,我需要针对某些条件运行,然后更新它,所以我做了类似的事情:
var newitems = myArray.filter(function(x,n){
return someconditional_is_true;
}).map(function(arg){
return "something_new" + arg;
})
这就像魅力......但是我需要将我的“myArray”更改为列表(哈希)并过滤该列表然后从中生成数组并不是真的有效。
// NOT working
var newitems = jQuery.each(myHash, function(x,n){
if (some_conditional) {
return 'something_new' + 'n';
}
})
最后的newitems只保存循环的直通值,而不是“返回值”。我试过“.map” - 没有运气。我很确定我在这里忽略了一些小事。
所以,作为一个例子。
var myHash = {
item1 : 'item1value',
item2 : 'item2value',
blah : 'item3value'
}
var newitems = jQuery.each(myHash, function(x,n){
if (x.indexOf('item') != -1){
return 'myVALUE' + "--" + n;
}
})
console.log(newitems); // gives me just the myHash in a hash view.
// this just gives me newitems in an array with ALL of myhash stringed. It didn't filter by the conditional.
var newitems = jQuery.map(myHash, function(x,n){
if (x.indexOf('item') != -1){
return 'myVALUE' + "--" + n;
}
})
毕竟说完了,我希望'newitems'有:
['myValueitem1',',myValueitem2']
答案 0 :(得分:2)
每个人都不会遵守构建数组的返回值。使用jQuery.map
:
var newItems = jQuery.map(myHash, function(value,key){
if (key.indexOf('item') != -1){
return 'myVALUE' + "--" + value;
}
});