两个数组比较的问题

数组a:
[
{"user_num":"75925","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75921","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"7595","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75984","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"759020","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75930","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75911","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75931","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75912","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75932","MeterNo":"50005445","BookNo":"51010"},
{"user_num":"75913","MeterNo":"50005445","BookNo":"51010"}
]

数组b:
[

                            {user_num:75925,name:"范小明"},
                            {user_num:75921,name:"李大霄"},
                            {user_num:7595,name:"刘士雨"},
                            {user_num:75984,name:"廖冰"},
                            {user_num:7598020,name:"李刚"},
                            {user_num:7597,name:"李世民"},
                            {user_num:75930,name:"刘彬彬"},
                            {user_num:75911,name:"森美"}

]

我想得到这样的效果,遍历数组a的user_num,如果,其值在数组b里,则取出该数组b的name属性,并添加到数组a中。如果user_num没有在数组b中,在添加一个默认值name属性(可以设为default)给数组a.

最后,数组a将变成这样:
[
{"user_num":"75925","MeterNo":"50005445","BookNo":"51010","name":"范小明"},
{"user_num":"75921","MeterNo":"50005445","BookNo":"51010","name":"李大霄"},
{"user_num":"7595","MeterNo":"50005445","BookNo":"51010","name":"刘士雨"},
{"user_num":"75984","MeterNo":"50005445","BookNo":"51010","name":"廖冰"},
{"user_num":"759020","MeterNo":"50005445","BookNo":"51010","name":"李刚"},
{"user_num":"75930","MeterNo":"50005445","BookNo":"51010","name":"刘彬彬"},
{"user_num":"75911","MeterNo":"50005445","BookNo":"51010","name":"森美"},
{"user_num":"75931","MeterNo":"50005445","BookNo":"51010","name":"default"},
{"user_num":"75912","MeterNo":"50005445","BookNo":"51010","name":"default"},
{"user_num":"75932","MeterNo":"50005445","BookNo":"51010","name":"default"},
{"user_num":"75913","MeterNo":"50005445","BookNo":"51010","name":"default"}
]

阅读 2k
4 个回答
function assign(a, b) {
        for (let i = 0, len = a.length; i < len; i++) {
            for (let j = 0, len = b.length; j < len; j++) {
                if (parseInt(a[i].user_num) === parseInt(b[j].user_num)) {
                    a[i].name = b[j].name;
                    break;
                }else {
                    a[i].name= 'default';
                }
            }
        }
        return a
    }

楼上代码其实有缺陷 没有必要不相等就给a[i].name赋值为default 应该是第二个for循环走完了如果a[i].name没有值,才进行赋值。

function assign(a, b) {
    for (let i = 0, len = a.length; i < len; i++) {
        for (let j = 0, len = b.length; j < len; j++) {
            if (parseInt(a[i].user_num) === parseInt(b[j].user_num)) {
                a[i].name = b[j].name;
                break;
            }
        }
        if (a[i].name) {
            a[i].name= 'default';
        }
    }
    return a
}
array_a.forEach((itemA, index) => {
    array_b.forEach((itemB, index) => {
        if(itemA.user_num == itemB.user_num) {
            itemA.name = itemB.name
        }
    })
})
for(var v1 of a){
    v1.name="default";
    for(var v2 of b){
        if(v1.user_num==v2.user_num){
            v1.name=v2.name
        }
    }
}
console.log(a)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题