阵列内部的连接阵列长度



我有一个看起来像这样的数组:

[ ["01", "Bolognesa", "51"]
, ["01", "Spaghetti", "52"]
, ["01", "Ricardo", "1", "Manjar", "203", "La", "Beriso"]
, ["03", "Miguel", "4", "Manjar", "22", "El", "Beriso"]
]

我想按长度将它们合并在阵列中。这样:

[
, [["01", "Bolognesa", "51"],["01", "Spaghetti", "52"]]
, [["01", "Ricardo", "1", "Manjar", "203", "La", "Beriso"],["03", "Miguel", "4", "Manjar", "22", "El", "Beriso"]]
]

我尝试了映射和过滤:

   console.log(mappedText.map(i => i.filter(j => j.length)));

,但我无法破解它。有什么想法吗?

您可以将数组和长度作为索引进行分组和滤波。

var array = [["01", "Bolognesa", "51"], ["01", "Spaghetti", "52"], ["01", "Ricardo", "1", "Manjar", "203", "La", "Beriso"], ["03", "Miguel", "4", "Manjar", "22", "El", "Beriso"]],
    result = array
        .reduce((r, a) => {
            r[a.length] = r[a.length] || [];
            r[a.length].push(a);
            return r;
        }, [])
        .filter(Boolean);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新