我想得到一個這樣的json
[
{'id':1,'array1':2,'array2':3,'array3':4},
{'id':2,'array1':3,'array2':4},
{'id':3,'array1':4,'array2':5,'array3':6,'array4':7,'array5':8}
]
根據通過兩個不同json下的id關聯在一起。
jsonA:
[{'id':1},{'id':2},{'id':3}]
jsonB:
[
{'id':1,'array':[2,3,4]},
{'id':2,'array':[3,4]},
{'id':3,'array':[5,6,7,8]}
]
我該怎么實作呢?
uj5u.com熱心網友回復:
<script>
var a = [{
'id': 1
}, {
'id': 2
}, {
'id': 3
}]
var b = [{
'id': 1,
'array': [2, 3, 4]
},
{
'id': 2,
'array': [3, 4]
},
{
'id': 3,
'array': [5, 6, 7, 8]
}
]
let arr = []
a.forEach(item => {
var json = {}
var ob = b.find(j => j.id === item.id)
json['id'] = item.id
ob.array.forEach((o, index) => {
json['array'+(++index)] = o
})
arr.push(json)
})
console.log(arr)
</script>
uj5u.com熱心網友回復:
jsonA:應該比較簡單了。jsonB:判斷一下長度,再提取出來。
如果是我,就用和這個笨辦法。
uj5u.com熱心網友回復:
哦……你是要jsonA和jsonB,合并成一個大的……一樣咯,判斷長度,回圈拼接
uj5u.com熱心網友回復:
var jsonA = [{'id':1, t: 1},{'id':2, t: 2},{'id':3, t: 3}]
var jsonB = [
{'id':1,'array':[2,3,4]},
{'id':2,'array':[3,4]},
{'id':3,'array':[5,6,7,8]}
]
function merge(jsonA, jsonB) {
let result = []
for(let item of jsonA) {
let found = jsonB.find(each => each.id === item.id)
let obj = found.array.reduce((obj, v, i) => {
obj['id'] = item.id
obj['array' + (i + 1)] = v
Object.assign(obj, item)
return obj
}, {})
result.push(obj)
}
return result;
}
console.log(merge(jsonA, jsonB))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/195692.html
標籤:JavaScript
上一篇:jsp檔案中 $("#value").focus(); 的 #value 是什么,我在這個JSP檔案中沒有找到 #value這個變數
