我有这个数组
var setData =
[{"id":"1","name":"1","position":"1","office":"NY","active":"1"},
{"id":"2","name":"2","position":"2","office":"NY","active":"0"},
{"id":"3","name":"3","position":"3","office":"NY","active":"0"}
];
我需要的是使用活动字段1来获取这个新数组
var activeData =
[{"id":"1","name":"1","position":"1","office":"NY","active":"1"}
];
答案 0 :(得分:3)
您几乎似乎知道答案:使用Array#filter
:
var filteredArray = setData.filter(function(entry) {
return entry.active === "1";
});
它是ES5的东西,但可以为旧版浏览器填充。 filter
从每个元素构造一个新数组,过滤函数将为其返回一个真值。
答案 1 :(得分:2)
使用javascript的过滤功能。
var activeData = setData.filter(function (element) {
return element.active === "1";
});
filter函数接收一个函数,该函数接受数组的元素并使用函数返回true的元素创建一个新数组(谓词成立)。
请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
编辑:
还有一些评论。
吨。 J.在这里带来了“真理”这个词。这意味着在javascript中,不仅可以在逻辑语句中使用true和false。 truthy值是每个值,当放入if else语句时,程序流经“then”分支,而falsy值则相反。 e.g。
if ({}) alert("Truthy"); else alsert("Falsy"); //Truthy
if ([]) alert("Truthy"); else alsert("Falsy"); //Truthy
if (1) alert("Truthy"); else alsert("Falsy"); //Truthy
if (true) alert("Truthy"); else alsert("Falsy"); //Truthy
if ("") alert("Truthy"); else alsert("Falsy"); //Falsy
if (0) alert("Truthy"); else alsert("Falsy"); //Falsy
if (false) alert("Truthy"); else alsert("Falsy"); //Falsy
答案 2 :(得分:1)
您可以使用:
.each()
var activeData = [];
$.each(setData,function(i,v){
if(v.active=="1") activeData.push(v);
});