javascript - 如何动态拆分数组?

标签 javascript arrays split

我有一个字符串数组,有点像这样:

["x", "foo", "y", "bar", "baz", "z", "0"]

我需要为每个 X、Y 和 Z 或其他特殊关键字拆分数组。

我尝试使用[x,y,z].split(y) 拆分数组,但我很确定split() 仅适用于字符串。

关键字(xyz ) 必须是数组中的第一个。 我该怎么做?

这就是我想要得到的:

[
    ["x", "foo"],
    ["y", "bar", "baz"],
    ["z", "0"]
]

最佳答案

您可以采用一个数组和一个闭包来获取键字符串的索引,并在找到键时推送一个空数组。

var array = ["x", "foo", "y", "bar", "baz", "z", "0"],
    keys = ["x", "y", "z"],
    result = array.reduce((i => (r, s) => {
        if (s === keys[i]) {
            r.push([]);
            i++;
        }
        r[r.length - 1].push(s);
        return r;
    })(0), []);

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

关于javascript - 如何动态拆分数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54495250/

相关文章:

javascript - JavaScript 更改后上传图像

javascript - 为每个对象创建唯一 ID

javascript - React 防止焦点窃取 onClick

arrays - Swift - 数组不能转换为 UInt8?

php - 使用 MySQLI 获取列并转换为数组

javascript - 在 Javascript 中用逗号 (,) 分隔的拆分项目

javascript - 对 nextSibling 返回的节点执行拆分会返回 TypeError undefined is not a function

javascript - 如何使用 javascript 对重复对象的 ID 进行分组并删除数组中的对象

c - malloc 之后的 while 循环后出现段错误

java - 分开的数字和字母