javascript - 我如何将键值对添加到javascript中的关联数组

标签 javascript arrays

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/

相关文章:

javascript - 查询图像结果一段时间后发生变化

javascript - 如何通过单击按钮打开 Accordion 菜单?

php - 在数组中存储对象在 PHP 4 和 5 中的区别

javascript - 如何从 json 数组生成键/值的每个组合?

javascript - HTML 元素数组未定义

javascript - 我可以在 .then 参数中使用 promise 吗?

javascript - 将当前元素+其他参数传递给 .every 回调函数

javascript - 如何在angularjs ajax调用中防止 "Provisional headers are shown"

Javascript 测试数组中的值

arrays - 使用 vb.net 替换数组中的文本