POPMUISE
{ "proId": "22", "proDate": "2016-08-12", "packType": "2", "proName": "33333", "palletCode": "1214", "packCodeList": [{ "packCode": "1213", "boxCodeList": ["1111", "1211"]
}], "batchId": "123"}如果箱是一个数组,那么可能是这样var proes = [
{ "proId": "22", "proDate": "2016-08-12", "packType": "2", "proName": "33333", "palletCode": "1214", "packCodeList": [{ "packCode": "1213", "boxCodeList": ["1111", "1211"]
}], "batchId": "123"
},
{ "proId": "23", "proDate": "2016-08-12", "packType": "2", "proName": "444444", "palletCode": "1214", "packCodeList": [{ "packCode": "1213", "boxCodeList": ["1111", "1211"]
}], "batchId": "123"
}
];把它对应的 palletCode 处理个关系出来var map = proes.reduce((all, p) => { // 确保创建了一个数组
var list = all[p.palletCode] = all[p.palletCode] || [];
list.push(p); return all;
}, {});现在你得到了一个 palletId -> [proOjbect] 这样一个 map,当你得到一个 palletId 之后就可以很容易取出来箱列表let palletId = getPalletId();let list = map[palletId] || [];后面 || [] 是处理没找到 list 的情况。至于从箱到盒,有个 "packCodeList" 都已经保存了。如果需要像上面那个通过映射表来取,也可以用类似的办法创建一个映射表,这个就简单一些// proId -> proObject 映射var map2 = proes.reduce((all, p) => {
all[p.proId] = p;
}, {});补充一下如果你只需要编码列表var list = (map[palletId] || []).map(obj => obj.proId);var list2 = ((map2[proId] || {}).packCodeList || [])
.map(obj => obj.packCode;