let finaloutput = {};
$.each( arr, function(index,key) {
let outarray = [];
// var id sourced from another function
outarray.push(id,index,key);
//??finaloutput[id].push(outarray);
}
在上面的代码中,我试图存储一个类似于下面的对象。 每次循环获取相同的 id 时,它都会将数组附加到最终输出对象中 例如 编号:索引:键
第一个循环,其中 id = 7 index=param 1 key=val1
{"7":[{param1:val1}]}
2nd .. id = 7 index=param 2 key=val2
{"7":[{param1:val1,param2:val2}]}
3rd ... id = 8 index=param 1 key=val1
{"7":[{param1:val1,param2:val2}],"8":[{param1:val1}]}
我如何实现这一目标
最佳答案
我尝试使用示例数据生成类似的输出:
`let indx = ["param1", "param2", "param3", "param4", "param5"]
let key = ["k1", "k2", "k3", "k4", "k5"]
let id = ["1", "2", "3", "4", "5"]
let resultObj = {}
for (let i = 0; i < 5; i++) {
if (resultObj[id]) {
let temp=Object.assign({}, {[indx[i]]:key[i]}, ...resultObj[id[i]])
resultObj[id[i]] = [temp];
}
else{
let ob=[{[indx[i]]:key[i]}]
resultObj[id[i]]=ob
}
}
console.log(resultObj)`
在您的情况下,您可以执行以下操作:
让最终输出 = {};
$.each(arr, function (index, key) {
如果(最终输出[id]){
let temp = Object.assign({}, { [index]: key }, ...finaloutput[id])
最终输出[id] = [temp];
}
别的 {
让 temp2 = [{ [index]: key }]
最终输出[id] = temp2
}
}
注意 请引用我的示例以获得更好的理解,以防我无法准确地表述您的代码的答案或它给出错误
关于javascript - 我如何将键值对添加到javascript中的关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58715865/