js数组 面试题
程序员文章站
2022-03-03 19:51:13
...
ES6 去重
Array.from(new Set([1,2,3,4,5,4,3,2]))
[...new Set([1,2,3,4,5,4,3,2])]
//[1, 2, 3, 4, 5]
排序
[1,2,2,3,4,3,5,1].sort()
//[1, 1, 2, 2, 3, 3, 4, 5]
[1,2,2,3,4,3,5,1].sort((a,b)=>b-a)
//[5, 4, 3, 3, 2, 2, 1, 1]
最大值
1.
Math.max(...[1,2,3,4,5,1,6,6,3])
//6
Math.max()是Math对象内置方法,参数是字符串。
2.
Math.max.apply(this,[1,2,3,4,5,1,6,6,3])
//6
3.
[1,2,3,4,5,1,6,6,3].reduce((prev,cur,curIndex,arr)=>{
return Math.max(prev,cur);
},0)
//6
reduce是ES5的数组api,参数有函数和默认初始值
函数有四个参数:prev上一次的返回值,cur当前值,curIndex当前值索引,arr当前数组
求和
[1,2,3,1,3].reduce((prev,cur)=>{
return prev+cur;
},0)
//10
合并
1.
[1,2,3,4].concat([1,2,3]);
//[1, 2, 3, 4, 1, 2, 3]
2.
[...[1,2,3,4],...[4,5,6]];
[1, 2, 3, 4, 4, 5, 6]
判断两个数组哪个更大,然后使用大数组合并小数组,这样就减少了数组元素操作的次数!
每一项设置值
1.
[1,2,3].fill(false);
//[false, false, false]
fill是ES6的方法
2.
[1,2,3].map(()=>0);
//[0, 0, 0]
每一项是否满足
[1,2,3].every(item=>{return item>2})
//false
every
是ES5的api,,每一项满足返回 true
。
有一项满足
[1,2,3].some(item=>{return item>2});
//true
some
是ES5的api,有一项满足返回 true
。
过滤数组
[1,2,3].filter(item=>{return item>2})
//[3]
filter
是ES5的api,返回满足添加的项的数组
对象和数组转化
Object.keys({name:'张三',age:14})
["name", "age"]
Object.values({name:'张三',age:14});
["张三", 14]
Object.entries({name:'张三',age:14});
//[["name", "张三"],["age", 14]]
源自:https://segmentfault.com/a/1190000018549643
上一篇: MySQL数据库基础补充-数据库别名
下一篇: SQL Update多表联合更新的方法