为了账号安全,请及时绑定邮箱和手机立即绑定

使用散列和过滤器散列遍历数组

使用散列和过滤器散列遍历数组

Smart猫小萌 2022-12-22 09:30:46
我有一个里面有哈希的数组:var variable = [];var a = [  { "type": "type1", "a": "a" },   { "type": "type2", "a": "b"},   { "type": "type1", "a": "c"},  { "type": "type1", "a": "d"},  { "type": "type2", "a": "e"},]我如何能够遍历数组和散列并根据具有键值的数组和散列来过滤它们并将"type1"其"type"推送到变量以便我得到: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]          })        }    }}输出:{type: "type1"}{type: "a"}{type: "type1"}{type: "c"}{type: "type1"}{type: "d"}
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

Array.filter 方法应该可以解决问题。


var filtered_array = a.filter(function(e){

    return (e.type === 'type1')

})


查看完整回答
反对 回复 2022-12-22
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

你很接近,你只是把错误的东西推到结果上。您可以直接推送a[i]而不是创建一个新对象。


您也不需要嵌套循环。这是为对象中的每个属性重复推送。


for (var i = 0; i < a.length; i++) {

    if (a[i].type == "type1"){

        variable.push(a[i])

    }

}


查看完整回答
反对 回复 2022-12-22
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号