在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]]]]]]))