我想为列表中的事件项目和非事件项目创建一个数组。我目前有以下代码。下面的代码可以工作,但是我希望格式与现有数组相同。
var myData = [
{"text" : "item 1", "id":11111, "active" : 0 },
{"text" : "item 2", "id":22222, "active" : 1 },
{"text" : "item 3", "id":33333, "active" : 1 },
{"text" : "item 4", "id":44444, "active" : 0 }
];
console.log(myData[0].text); //returns item 1
var active = [];
var inactive = [];
for (var i = 0; i < myData.length; i++) {
if(myData[i].active) {
active.push({
items: myData[i];
});
}
else {
inactive.push({
items: myData[i];
});
}
}
console.log(active[0].items.text); //returns item 2
console.log(inactive[0].items.text); //returns item 1
我似乎无法弄清楚如何在不命名的情况下将整个对象插入数组。
我想设置我的数组,以便我可以 console.log
事件[0].文本
而不是必须去到下一个级别然后再去
事件[0].items.text
有没有办法可以在不命名的情况下推送整个对象?
最佳答案
var myData = [
{"text" : "item 1", "id":11111, "active" : 0 },
{"text" : "item 2", "id":22222, "active" : 1 },
{"text" : "item 3", "id":33333, "active" : 1 },
{"text" : "item 4", "id":44444, "active" : 0 }
];
console.log(myData[0].text); //returns item 1
var active = myData.filter(function(data){
return data.active;
});
var inactive = myData.filter(function(data){
return !data.active;
});
或者也许让它成为一个函数
function getData(type){
return myData.filter(function(data){
return (type == 'active') ? data.active : !data.active;
});
}
如果您已经在使用 ES6 箭头函数,您可以将它们缩短为:
var active = myData.filter(data => data.active);
var inactive = myData.filter(data => !data.active);
function getData(type){
return myData.filter(data => (type == 'active') ? data.active : !data.active);
}
关于javascript - 将现有数组插入多个数组js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445401/