gpt4 book ai didi

javascript - 使用 JavaScript 在 ForEach 循环中拆分数组值?

转载 作者:行者123 更新时间:2023-12-02 23:48:05 25 4
gpt4 key购买 nike

我正在尝试执行 forEach 循环并获取每个项目并将其拆分为一个字符。在本例中,我想在“||”处分割数组项文本。我目前拥有的是:

var array = [
[
"featured", ["feat||1", "feat||2", "feat||3"]
],
[
"new", ["new||1", "new||2", "new||3"]
]
];

var taxIDs = [];


array.forEach((i) => {
if (i[1].length) {
taxIDs.push(i[1].split("||")[1]);
}
});

所以我试图将 i[1] 并在“||”处分割它并获取该分割数组中的第二项,但是执行此操作会抛出错误并不确定完成我需要的最佳方法?

编辑(这是我在控制台记录我的数组时看到的内容:

(3) [Array(2), Array(2)]
0: (2) ["featured", Array(3)]
0: "featured"
1: (3) ["feat||1", "feat||2", "feat||3"]
1: (2) ["news", Array(2)]
0: "news"
1: (2) ["news||1", "news||2", "news||3"]

所以这个数组中有3层数组。

最佳答案

这里有一种可能的方法,使用 Array.reduce()destructuring嵌套数组。

var array = [
[
"featured", ["feat||1", "feat||2", "feat||3"]
],
[
"new", ["new||1", "new||2", "new||3"]
]
];

var taxIDs = array.reduce(
(acc, [str, arr]) => [...acc, arr.map(str => +str.split("||")[1])],
[]
);

console.log("taxIDs is: ", taxIDs);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

您还可以将 .map() 替换为在字符串上使用 match() 的函数:

arr.map(str => +str.match(/\d+/)[0])

此外,您还可以避免 unnary plus如果您希望 ids 保留为字符串:

arr.map(str => str.split("||")[1])
// OR
arr.map(str => str.match(/\d+/)[0])

关于javascript - 使用 JavaScript 在 ForEach 循环中拆分数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com