如下:
let arr = [[], [1,2,3], [4,5,6], [7]];
怎么合成[1,2,3,4,5,6,7]
呢?
如果数组是多层的,用递归。代码:
function flatten(arr){
return arr.reduce(
function(prev, cur){
return prev.concat(Array.isArray(cur) ? flatten(cur) : cur );
// prev should be an array, if cur is not an array, we can concat it, otherwise, we should use iteration here.
}, []) // [] is the initial value for cur, since we want to use Array.prototype.concat, so here we should give an empty array as initial value.
}
let arr = [[], [1,2,3], [4,5,6], [7]];
let flatArray = [];
arr.forEach((item,index)=>{
flatArray = flatArray.concat(item);
});
let arr = [[], [1,2,3], [4,5,6], [7]];
let newArr = [];
arr.forEach(v=>newArr = newArr.concat(v))
console.log(newArr)
function flattenArray(arr: Array<any>): Array<any> {
let tempArr: Array<any> = [];
for (let subarr of arr) {
tempArr.push(...subarr);
}
return tempArr;
}
扁平化两层数组:[].concat(...arr) 这就是最简单的了,没有比这更简单的。
扁平化多层数字数组:arr.toString().split(',').map(x=>+x)
扁平化多层数组:JSON.parse('[' + JSON.stringify(arr).replace(/[|]/, '') + ']') 这个不完美,你要想简单就去找lodash等第三方库
数组去重:[...new Set(arr)] 这就是最简单的了,没有比这更简单的。
手机党,纯手打
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答942 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
一、reduce
二、splice
三、concat
四、join
五、pop shift unshift
1.pop:删除数组最后一个元素,并返回该元素
2.shift:删除数组第一个元素,并返回该元素
==注:当数组为空时,返回undefined==
3.unshift:跟shift相反,往数组最前面添加元素,并返回数组新长度。
六、sort reverse
1.sort: ANSI碼正序;
2.reverse :ANSI碼倒序;
七、slice splice
1.slice:返回数组片段
2.splice:从数组删除某片段的元素,并返回删除的元素
八、toString toLocaleString valueOf
1.toString:把数组转为字符串,不只数组,所有对象均可使用该方法
2.toLocaleString:返回本地格式字符串,主要用在Date对象上
区别在于,toString()返回标准格式,toLocaleString()返回本地格式完整日期(在【控制面板】>>【区域和语言选项】,通过修改[时间]和[长日期]格式),toLocaleDateString()跟toLocaleString()一样,只是少了时间
3.valueOf:根据不同对象返回不同原始值,用于输出的话跟toString()差不多,但是toString()是返回string类型,而valueOf()是返回原对象类型
九、every() filter() find() some() includes()
1.every
2.filter
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
3.find
find() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素。
find() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
4.some
5.includes
// -1
十、fill
十一、entries() keys() values()
十二、Array.from()
十三、Array.of()