分享一些JavaScript的实用方法

本文已参与「新人创作礼」活动,一起开启创作之路。

直奔主题吧


使用new Array().fill()创建数组

例:创建二维数组

let arr = new Array(5).fill([])
console.log(arr);   //   [ [], [], [], [], [] ]

数组词:创建初始元素为0的输出

let arr = new Array(5).fill([])
console.log(arr);   //  [ 0, 0, 0, 0, 0 ]

使用reduce()进行数组元素的累和,累积,以及异或运算

官方文档解释:reduce() 方法对数组中的每个元素按序执行一个由您提供的reducer函数,每一次运行reducer会将先前元素的计测试抑郁症算结果作为参索引是什么意思数传入,最后将其结果汇总为单个返回值。

例:对数组元素进行累和运算

let arr = [1,2,3,4,5]
let sum = arr.reduce((a,b)=>a+b)
console.log(sum);     // 15

例:对数组元素进行累积计算

let arr = [1,2,3,4,5]
let res = arr.reduce((a,b)=>a*b)
console.log(res);     // 120

使用map()进行数组元素的统一操作

官方文档解释:测试工程师map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值索引的优缺点组成。

例:对异或是什么数组中所有元素进行*2操作

let arr = [1,2,3,4,5]
arr = arr.map(item=>item*2)
console.log(arr);   //[ 2, 4, 6, 8, 10 ]

使用filter()来过滤数组中你想获得的元素

官方文档解释:filter() 方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。

例:过滤数组中所有偶数

let arr = [1,4,6,3,7,9,3,6]
arr = arr.filter(item=>item%2==0)
console.log(arr);    //   [ 4, 6, 6 ]

例:取两个数组的交集部分

let arr1 = [1,4,6,3,7,9,3,6]
let arr2 = [3,7,9]
let res = arr1.filter(item=>arr2.includes(item))
console.log(res);   //   [ 3, 7, 9, 3 ]

例:取两个数组的差

let arr1 = [1,4,6,3,7,9,3,6]
let arr2 = [3,7,9]
let res = arr1.filter(item=>!arr2.includes(item))
console.log(res);   //   [ 1, 4, 6, 6 ]

使用Array.from()将类似数组转换为数组

官方文档解释:Array.from() 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例

类似数组解释:拥有长度索引超出矩阵维度length 和若干索引index的对象

例:

let str  = 'abc'
str = Array.from(str)
console.log(str);   //   [ 'a', 'b', 'c' ]

使用Set()对数组元素索引符号进行去重

官方解释:Set对象允许你存储数组指针任何类型的唯一值,无论是[原始值]或者是对象引用

let arr1 = [2,2,2,2,4,4,4,2,2,3]
arr1 = new Set(arr1)
console.log(arr1);   //   Set(3) { 2, 4, 3 }

使用Ob测试手机是否被监控ject.entries()将对象转换为数组,我们可以通过索引取当中的值

官方数组词解释:Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组

let obj = {
    a: 1,
    b: 2,
    c: 3
}
obj = Object.entries(obj)
console.log(obj);  //   [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]

使用sort()对对象的键值对进行排序,特定情况下也许可以方便取值

一天朋友问我,我不知道对象中键值对的键,可以取到对象中的最大值吗?

我想到索引是什么意思通过数组指针Object.entries() 将对象转换为键值对数组,对键值对数组中的值进行排序来达到目的

let obj = {
    a: 6,
    b: 4,
    c: 3,
    d: 5,
    g: 8
}
obj = Object.entries(obj)     //   [ [ 'a', 6 ], [ 'b', 4 ], [ 'c', 3 ], [ 'd', 5 ], [ 'g', 8 ] ]
obj.sort((a,b)=>b[1]-a[1])   //    [ [ 'g', 8 ], [ 'a', 6 ], [ 'd', 5 ], [ 'b', 4 ], [ 'c', 3 ] ]
console.log(obj[0][1]);     //  8

使用toString()索引符号 将数字变为n进制

let num = 12
console.log(num.toString(2));   //  1100
console.log(num.toString(4));   //  30
console.log(num.toString(8));   //  14

评论

发表回复