gpt4 book ai didi

javascript - 迭代 3 维数组 - JS

转载 作者:行者123 更新时间:2023-12-03 03:32:50 27 4
gpt4 key购买 nike

我正在创建一个函数,它将把 3 维数组合并到对象数组中。

示例:

var input = [[['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']],
[['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']]];

结果:

[
{firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'},
{firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
]

所以我所做的是迭代每个数组,然后获取第一个元素和最后一个元素并将其放入一个对象中。

但是我陷入了两件事:

  1. 它不会使用 myObj[employeeData[i][j][0]] = employeeData[i][j][k]; 获取数组中的所有项目,仅使用第二个数组维度。

在本例中是这个:

[['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']]];
  • 如果我将对象插入空数组,我将得到以下结果:

    [[对象对象] { 年龄:36岁, 名字:“玛丽”, 姓氏:“ Jenkins ”, Angular 色:“经理”}, [圆形对象对象], [圆形对象对象], [圆形对象对象], [圆形对象对象], [圆形对象对象], [圆形对象对象], [圆形对象对象], [圆形对象对象], [圆形对象对象]、[圆形对象对象]、[圆形对象对象]、[圆形对象对象]、[圆形对象对象]、[圆形对象对象]、[圆形对象对象]]

  • 不确定圆形对象是什么意思。

    这是到目前为止我的代码:

    function arrayObject(data) {

    var arr = [];
    var myObj = {};

    for(var i = 0; i < data.length; i++){
    for(var j = 0; j < data[i].length; j++){
    for(var k = 0; k < data[i][j].length; k++){
    myObj[data[i][j][0]] = data[i][j][k];
    arr.push(myObj);
    }
    }
    }
    return arr;

    }

    var input = [[['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']],
    [['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']]];

    var output = arrayObject(input);
    console.log(output);

    最佳答案

    你犯了错误:

    • 首先,您不需要 3 个循环,只需两个循环即可,
    • 其次,myObj 应该位于上层循环的本地,因为它的值将为输入内的每个数组进行更改。
    function arrayObject(data) {
    var arr = [];
    for(var i = 0; i < data.length; i++){
    var myObj = {};
    for(var j = 0; j < data[i].length; j++){
    myObj[data[i][j][0]] = data[i][j][1];
    }
    arr.push(myObj);
    }
    return arr;
    }

    var input = [
    [
    ['firstName', 'Joe'],
    ['lastName', 'Blow'],
    ['age', 42],
    ['role', 'clerk']
    ],
    [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['role', 'manager']
    ]
    ];

    var output = arrayObject(input);
    console.log(output);

    关于javascript - 迭代 3 维数组 - JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009708/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com