Javascript常用简明操作手册---数组

记录一些JavaScript工作中的常见数组操作语法,方便查阅

数组定义

一组数据的集合,其表现形式就是内存中的一段连续的内存地址,数组名称其实就是连续内存地址的首地址

特点

可以存储任何数据类型的数据,定义时可以无需指定数组长度,定义时无需指定数据类型

初始化

var arr=[1,2,3];                     //隐式创建
var arr=new Array(1,2,3);      //直接实例化
var array=new Array(size);           //创建数组并指定长度

获取数组长度

arr.length

遍历数组

1、for循环(ES5)

for (let i = 0; i < arr.length; i++) {
    console.log(arr[i])
}

2、forEach():没有返回值(ES5)

arr.forEach(function (item, index, array) {
    console.log(item, index)
})

注意事项:forEach 的代码块中不能使用 break、continue,它会抛出异常

3、map():返回新的数组(ES5)

let res = arr.map(function (item, index, array) {
    return item + 1
})

4、for in(ES5)

for (let index in arr) {
    console.log(arr[index]);
}

4、for of(ES6)

for (let val of [1, 2, 3]) {
    console.log(val);
}

of后面是iterable既不是for循环规定的array,也不是for…in规定的object,而是iterable。也即是for…of 遍历的是一切可遍历的元素(数组、对象、集合)等。

5、filter():返回符合条件所有元素的数组(ES5)

let res = arr.filter(function (item, index, array) {
    return item == 2
})

其余

//some():返回Boolean,检测数组中的元素是否满足指定条件(ES5)
let res = arr.some(function (item, index, array) {
    return item == 4
})

//every():返回Boolean,判断每个元素是否符合function条件(ES5)
let res = arr.every(function (item, index, array) {
    return item == 2
})

//reduce():接收一个函数作为累加器(ES5)
//累加
let sum = arr.reduce(function (prev, cur, index, array) {
    return prev + cur
}, 0)
//取最大
let max = arr.reduce(function (prev, cur, index, array) {
    return Math.max(prev, cur)
})
//去重
let res = arr.reduce(function (prev, cur, index, array) {
    prev.indexOf(cur) == -1 && prev.push(cur)
    return prev
}, [])

//Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例(ES6)
console.log(Array.from([1, 2, 3], x => x + x));// Array [2, 4, 6]

//Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型
Array.of(1, 2, 3); // [1, 2, 3]

//find()方法返回数组中满足提供的测试函数的第一个元素的值,否则返回 undefined。(ES6)
let found = array.find(function(item) {
    return item > 10;
});

//findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1(ES6)
//其实这个和 find() 是成对的,不同的是它返回的是索引而不是值
let found = array.findIndex(function(item) {
    return item > 10;
});

合并数组

1、concat

arr = arr.concat(arr2)

2、push.apply

arr.push.apply(arr, arr2)

3、ES6语法糖

arr = [...arr, ...arr2]/arr.push(...arr2)ES6

你可能感兴趣的:(前端,javascript)