创建一个数组
var arr = [['a', 'b', 'c'], ['d', 'e', 'f'], [1, 2, 3, 'a', 'f']]
二维数组转一维数组
function ArrayFn(arr) {
var brr = []
for (var i = 0; i < arr.length; i++) {
brr = brr.concat(arr[i])
}
return brr
}
console.log(ArrayFn(arr))//['a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3, 'a', 'f']
二维数组转一维数组并去重
function ArrayFn2(arr) {
var brr = []
var crr = []
for (var i = 0; i < arr.length; i++) {
var crr = arr[i]
for (var j = 0; j < crr.length; j++) {
if (brr.indexOf(crr[j])==-1) {
brr.push(crr[j])
}
}
}
return brr
}
console.log(ArrayFn2(arr))//['a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3]
使用 reduce
方法将二维数组转换为一维数组的代码
const twoDArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);
console.log(oneDArray);
在上述代码中,reduce
方法接受两个参数,一个回调函数和一个初始值。回调函数又接受四个参数:累加器 accumulator
、当前元素 currentValue
、当前元素的索引 currentIndex
和原数组 array
。这里我只使用了前两个参数,通过 accumulator.concat(currentValue)
将当前的子数组与累加器合并,最终将二维数组展平为一维数组。