如何将数组转换为对象

时间:2019-06-19 17:03:22

标签: javascript

我有一个简单的数组,我需要按以下顺序将其转换为对象,目标是制作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"
    },

]

并带有3

new = [
    {
       "name: A",
       "name2: B",
       "name3: C"
    },
    {
       "name: D",
       "name2: E",
       "name3: F"
    },
    {
       "name: G",
       "name2: H",
       "name3: I"
    },
    {
       "name: J",
       "name2: K"
    },

]

谢谢

2 个答案:

答案 0 :(得分:0)

正如评论所表明的,我认为您对真正需要的东西感到困惑–您所描述的只是多维数组,根本不是对象。只需搜索该词,您就会在网上找到大量信息。

对于您的特定示例,可以通过以下两个for循环来做到这一点:

location / {
    root /var/www/html/recipetube-client/build;
    try_files $uri /index.html;
}
location /admin {
    root /var/www/html/recipe-tube-admin/build;
    try_files $uri /index.html;
}

答案 1 :(得分:0)

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

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; }