我找不到任何适合我这个问题的解决方案,请原谅我复制。
我想浏览所有.children()项目,如果其中一些项目满足条件,我想将这些项目保存在一个数组中。这是代码,以准确显示我的意思:
var items = [],
allitems = $('.iconImg').children(),
obj;
// console.log(allitems);
$('#next4').on('click', function(e){
e.preventDefault();
for(var i=0; i<allitems.length; i++){
var currItem = $(allitems[i]).attr('id'),
currItemPosLeft = parseInt($('#'+currItem).css('left')),
itemOffset = getOffset('#'+currItem),
items = [],
arrToSend = [];
// console.log(currItem, '=>', currItemPosLeft);
if(currItemPosLeft >= 405){
obj = {
obId: currItem,
obPos: itemOffset
}
items.push(obj);
console.log(items);
}
}
这段代码为我提供了满足条件的对象数组,但我想要的是一个存储这些对象的数组。
我该怎么做?
由于
答案 0 :(得分:0)
好的,我解决了。我不确定为什么我这么复杂,这很容易。
所以,代码将是:
var items = [],
allitems = $('.iconImg').children().toArray(),
obj;
// console.log(allitems);
$('#next4').on('click', function(e){
e.preventDefault();
$(allitems).each(function(i){
var currItem = $(allitems[i]).attr('id'),
currItemPosLeft = parseInt($('#'+currItem).css('left')),
itemOffset = getOffset('#'+currItem);
// console.log(currItem, '=>', currItemPosLeft);
obj = {
odId: currItem,
obPos: itemOffset
};
if(currItemPosLeft >= 405){
items.push(obj);
}
})
console.log(items);
})
//end of #next4 click
答案 1 :(得分:0)
只是一个做事的演示;
var testData = [{id:1,data:'abc'},{id:2,data:'efg'},{id:3,data:'pqr'},{id:4,data:'xyz'}]
var res = []
testData.forEach(function(o){
if(o.id % 2 == 0) { //your condition..
res.push({nid:o.id, ndata: o.data})
}
});