【问题标题】:Javascript convert multidimentional array to indexesJavascript将多维数组转换为索引
【发布时间】:2021-02-14 04:06:53
【问题描述】:

我的脚本运行良好,但我不知道为什么我的脑海中有一个内在的声音告诉我必须有一个“盒子内部”的解决方案,而不是编写一个函数或更简单的方法来获得什么我要。

我想要的只是获取数组索引(不是键)而不是值。

这是我的简单代码:

<!DOCTYPE HTML>
<html>
<head>
<meta charset=utf-8>
<title>&nbsp;</title>
<style></style>
</head>
<body>

<script>

function arrayIndexes(arrConvert)
{

    var newArr=[];

    for(y in arrConvert)
    {
        newArr[y]=[];
        for(x in arrConvert[y])
        {
            newArr[y][x]=parseInt(x);
        }
    }
    
    return newArr;

}

var menu=
[
    ['Spaghetti','Pizza','Lazanya'],
    ['Vinaigrette','Mushroom','Ketchup'],
    ['Bon Appétit'],
    ['Steve Vai','Joe Satriani','Hezi Gangina','Nuno Bettencourt']
];

console.table(arrayIndexes(menu));

</script>
</body>

是否有任何魔术技巧可以用“inTheBox”javascript 解决方案或其他更流畅的方式替换该函数?我想让它尽可能干净。

【问题讨论】:

    标签: javascript html arrays function indexing


    【解决方案1】:

    您可以使用数组 ma​​p 方法、spread syntaxkeys 方法来完成您的工作。遍历数组数组,获取所有索引并映射。

    const menu = [
      ['Spaghetti', 'Pizza', 'Lazanya'],
      ['Vinaigrette', 'Mushroom', 'Ketchup'],
      ['Bon Appétit'],
      ['Steve Vai', 'Joe Satriani', 'Hezi Gangina', 'Nuno Bettencourt'],
    ];
    
    const arrayIndexes = (arrConvert) => arrConvert.map((x) => [...x.keys()]);
    
    console.log(arrayIndexes(menu));

    【讨论】:

      【解决方案2】:

      const menu = [
        ["Spaghetti", "Pizza", "Lazanya"],
        ["Vinaigrette", "Mushroom", "Ketchup"],
        ["Bon Appétit"],
        ["Steve Vai", "Joe Satriani", "Hezi Gangina", "Nuno Bettencourt"],
      ];
      
      const sol = menu.map(arr => [arr.map((_, i) => i)]).flat();
      
      //console.table(sol);
      console.log(sol);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-05
        • 2012-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多