JavaScript-如何動態拆分數組?

我有一個字符串數組,有點像這樣:

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


分享到:


相關文章: