所以,我有一个数组,我需要针对一些条件运行它然后更新它,所以我做了类似的事情:
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']