欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

 

 

 

 

相关标签: 数据