在JavaScript中将数组的数组更改为其他数据类型的数组



在Javascript中是否有更好的方法将[[1],[2],[3]]更改为["1","2","3"],而不是我在下面的代码中所做的?

let arr = [[1],[2],[3]];

let newArr = [];
arr.forEach(elem => {
elem.forEach(val=>{
newArr.push(val);
})
})
console.log(newArr);

使用Array.map()使用string构造函数将每个数组转换为字符串:

const arr = [[1],[2],[3]]
const numbersArr = arr.map(String)
console.log(numbersArr)

如果每个数组中有多个元素,则将数组平面化,并将数组元素映射为字符串:

const arr = [[1, 2],[2, 3],[3, 4]]
const numbersArr = arr.flat().map(String)
console.log(numbersArr)

您可以使用Array.reduce将2d数组减少为单个数组。

const arr = [[1],[2],[3]];
const result = arr.reduce( (acc, cur) => {
acc.push(cur[0].toString())
return acc;
}, []);
console.log(result);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

这可能会有帮助。

// [1, [2, [3], [4, [[[5, 6]]]]]] => ['1', '2', '3', '4', '5', '6']
const flatternArray = (arr) => {
return arr.flatMap(x => {
if (Array.isArray(x)) {
return flatternArray(x)
} else {
return x.toString();
}
})
}
console.log(flatternArray([1, [2, [3], [4, [[[5, 6]]]]]]))

最新更新