Javascript 使用哈希和过滤器哈希迭代数组
我有一个包含散列的数组:Javascript 使用哈希和过滤器哈希迭代数组,javascript,loops,Javascript,Loops,我有一个包含散列的数组: var variable = []; var a = [ { "type": "type1", "a": "a" }, { "type": "type2", "a": "b"}, { "type": "type1", "a": "
var variable = [];
var a = [
{ "type": "type1", "a": "a" },
{ "type": "type2", "a": "b"},
{ "type": "type1", "a": "c"},
{ "type": "type1", "a": "d"},
{ "type": "type2", "a": "e"},
]
我如何能够迭代数组和散列,并根据type key的值type1对它们进行过滤,然后将其推送到一个变量,从而得到:
var variable = [];
var a = [
{ "type": "type1", "a": "a" },
{ "type": "type1", "a": "c"},
{ "type": "type1", "a": "d"},
]
我已尝试使用下面的代码,该代码正确执行过滤器,但输出错误:
for (var i = 0; i < a.length; i++) {
for (var key in a[i]) {
if (a[i]["type"] == "type1"){
variable.push({
"type": a[i][key]
})
}
}
}
Array.filter方法应该可以做到这一点
var filtered_array = a.filter(function(e){
return (e.type === 'type1')
})
你很接近,你只是把错误的东西推到了结果上。你只需要推一个[i],而不是制作一个新的对象 您也不需要嵌套循环。这是对对象中的每个属性重复推送
for (var i = 0; i < a.length; i++) {
if (a[i].type == "type1"){
variable.push(a[i])
}
}
看看javascript中的Array.filter,在javascript中它们被称为对象,而不是散列。
for (var i = 0; i < a.length; i++) {
if (a[i].type == "type1"){
variable.push(a[i])
}
}