javascript - 循环从二维数组创建对象键和值

标签 javascript arrays object

这个问题在这里已经有了答案:





Easiest way to interate over a complex JSON object via Javascript

(7 个回答)


9年前关闭。




我有两个数组,一个保存键,一个保存数组,每个数组都包含值。我想创建一个对象数组,其中每个对象都将键和值配对。为此,我创建了一个数组,现在我尝试在将对象插入数组之前创建和填充对象。我的代码与此类似:

var keys = [key1, key2, key3];
var values = [
                [A-value1, A-value2, A-value3],
                [B-value1, B-value2, B-value3],
                [C-value1, C-value2, C-value3]
             ];

var arrayOfObjecs = [];
for(var i=0; i<values.length; i++){
    var obj = {
    for(var j=0; j<values[i].length; j++){
            keys[j] : values[i][j];
    }
    };
    arrayOfObjects.push(obj);
}

最后,我希望我的 arrayOfObjects 看起来像这样:
var arrayOfObjects = [
                        {
                         key1 : A-value1,
                         key2 : A-value2,
                         key3 : A-value3
                        },
                        {
                         key1 : B-value1,
                         key2 : B-value2,
                         key3 : B-value3
                        },
                        {
                         key1 : C-value1,
                         key2 : C-value2,
                         key3 : C-value3
                        }
                     ];

This question与我想做的类似,但它不允许我在对象中第二次循环。

最佳答案

您的问题实际上是关于对象属性方括号表示法:
使用 object[propertyname] 与使用 object.propertyname 相同。

var myObj  = {};
myObj['x'] = 12;
console.log(myObj.x);  -->> prints 12

现在在您的代码中:
var arrayOfObjects = [];
for(var i=0; i<values.length; i++){
    var obj = {};
    for(var j=0; j<values[i].length; j++){
         obj[keys[j]] = values[i][j];  
      }
    arrayOfObjects.push(obj);
}

回复“它做了奇怪的事情”:这段代码有效。

使用此输入:
var keys = ['key1', 'key2', 'key3'];
var values = [
            [12,112, 1112],
            [31, 331, 3331],
            [64, 65, 66]
         ];

输出是:
   {   {key1: 12, key2: 112, key3: 1112},  
       {key1: 31, key2: 331, key3: 3331},   
       {key1: 64, key2: 65, key3: 66}        }

fiddle 在这里:
http://jsfiddle.net/fyt8A/

关于javascript - 循环从二维数组创建对象键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353505/

相关文章:

javascript - 当 Div 包含 float 内容时在 Javascript 中获取 Div 容器高度(没有 jQuery)

javascript - 如何使用asp.net从Angular 2发送的url中读取JSON数据

javascript - 将字符串拆分为多维数组

javascript - 我们如何在 Javascript 中找到对象的长度?

javascript - 请解释一下代码风格可见性的含义

javascript - 具有自定义工具栏和自定义样式的 CKEDITOR

java - 找到句子中元音最多的单词(可以是几个彼此等价且位于相邻位置的最大单词)

arrays - 数组作为过程 vb6 与 vb.net 中的参数

arrays - Swift 5 将文本文件读入 Int/Doubles 的二维数组

javascript - 如何创建 Object.prototype 克隆