为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数组转换为对象

如何将数组转换为对象

繁花如伊 2021-06-30 10:07:56
我有一个简单的数组,我需要按照以下顺序将它转换为一个对象,目标是制作一个 2 o 3 列的矩阵array1 = ["A", "B", "C", "D", "E", "F"]或者array1 = ["A", "B", "C", "D", "E", "F", "G"]我需要得到一个这样的对象new = [    {       "name: A",       "name2: B"    },    {       "name: C",       "name2: D"    },    {       "name: E",       "name2: F"    },    {       "name: G"    },]并与 3new = [    {       "name: A",       "name2: B",       "name3: C"    },    {       "name: D",       "name2: E",       "name3: F"    },    {       "name: G",       "name2: H",       "name3: I"    },    {       "name: J",       "name2: K"    },]谢谢
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

正如评论所指出的,我认为您对自己到底需要什么感到困惑——您所描述的只是一个多维数组,根本不是一个对象。只需通过谷歌搜索该术语,您就会在网上找到大量信息。


至于您的具体示例,以下是您如何使用几个 for 循环来做到这一点:


array1 = ["A", "B", "C", "D", "E", "F", "G"];


makeGrid(array1, 2);

makeGrid(array1, 3);



function makeGrid(array, step) {

  const grid = [];

  for (i = 0; i < array.length; i+= step) {

    const tmp = [];

    for (j = 0; j < step && array[i + j]; j++) {

      tmp.push(array[i+j]);

    }

    grid.push(tmp);

  }


  console.log(grid);

}


查看完整回答
反对 回复 2021-07-08
?
当年话下

TA贡献1890条经验 获得超9个赞

您可以对数组进行切片,直到没有更多值可用。使用具有所需长度的切片数组,您可以生成具有给定名称和编号的新对象。


function getGrouped(array, size, key) {

    var result = [],

        i = 0;

        

    while (i < array.length) {

        result.push(Object.assign(...array.slice(i, i += size).map((v, i) => ({ [key + i]: v}))));

    }

    return result;

}


console.log(getGrouped(["A", "B", "C", "D", "E", "F", "G"], 2, 'name'));

console.log(getGrouped(["A", "B", "C", "D", "E", "F", "G", "H", "I"], 3, 'name'));

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 288 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信