优秀的编程知识分享平台

网站首页 > 技术文章 正文

JavaScript 数组的扩展(ES6语法)(javascript es6有静态属性吗)

nanyue 2024-09-08 06:03:18 技术文章 5 ℃

find和findIndex方法(两个只会返回第一个, 不会遍历整个数组)

let arr = [2,3,4,5,6,7,8,9,10,11,12];
let item = arr.find(function(item){
return item > 7;
})
console.log(item) //8

数组的findIndex()方法的用法和find一样, 返回第一个符合条件的数组成员的下标位置, 如果所有的成员都不符合, 则返回-1。

let arr = [2,3,4,5,6,7,8,9,10,11,12];
let index = arr.findIndex(function(item){
return item > 7;
})
console.log(index); //6

Array.from()方法

使用"..."可以类数组对象变为真正的数组。

var obj = {
0 : 100,
1 : 200,
2 : 300,
length:3
}
var arr= Array.from(obj);
console.log(obj) // { '0': 100, '1': 200, '2': 300, length: 3 }
console.log(arr) // [ 100, 200, 300 ]

最常见的类数组对象是arguments:

function fun(){
//console.log([...arguments]);
console.log(Array.from(arguments));
}
fun(1,2,3,4) //[ 1, 2, 3, 4 ]

Array.of()方法

它可以将零散的值变为数组

let arr = Array.of(3,4,5,6,7,8);
console.log(arr) //[ 3, 4, 5, 6, 7, 8 ]

includes()方法

验证数组中是否存在某一项:

let arr = [3,4,5,88,100];
console.log(arr.includes(88)); //true
console.log(arr.includes(888)); //false

console.log([1, 2, 3].includes(3, 3)); //false
console.log([1, 2, 3].includes(3, -1)); //true

没有该方法之前, 我们通常使用数组的indexOf方法, 检查是否包含某个值。

console.log([NaN].indexOf(NaN)); // -1

includes使用的是不一样的判断算法, 就没有这个问题。

console.log([NaN].includes(NaN)); // true

fill()数组填充

var arr = new Array(10).fill("★");
console.log(arr)

for of遍历(只可以遍历一切数据结构)

增加了一种数组的遍历方法, 叫for of遍历, 通常配合arr.entries()

var arr = ['张三','李四','王五','李六','孙七'];
for(var v of arr){
console.log(v)
}
var arr = ['张三','李四','王五','李六','孙七'];
for(var [k, v] of arr.entries()){
console.log(k, v)
}

遍历对象, 一般要配合Object.keys(),Object.values(),Object.entries()

var obj = {a:'张三',
b: '李四',
c: '王五',
d: '赵六',
e: '孙七'
};
for(var k of Object.entries(obj)){
console.log(k)
}
最近发表
标签列表