我有一个字符串数组,有点像这样:
["x", "foo", "y", "bar", "baz", "z", "0"]
我需要为每个 X、Y 和 Z 或其他特殊关键字拆分数组。
我尝试使用[x,y,z].split(y)
拆分数组,但我很确定split()
仅适用于字符串。
关键字(x、y 和 z ) 必须是数组中的第一个。 我该怎么做?
这就是我想要得到的:
[
["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/