1. Array.forEach()
将数组中的每个元素执行传进提供的函数,没有返回值,不改变原来的数组。除非在执行函数时对数组进行了相应操作。
例如:
var test = [1, 2, 3, 4]
test.forEach(x => {console.log(x)}) // 依次输出1 2 3 4
console.log(test) // [1, 2, 3, 4]
var test = [1, 2, 3, 4]
test.forEach((x,y) => {test[y] = 2})
console.log(test) // [2, 2, 2, 2]
可以看出,如果forEach传参时只传了一个,则默认传的是value值。若穿了(x, y)这种形式,则默认是(value, key)形式。
2. Array.map()
该方法与forEach类似,区别在于将执行结果组成新的数组返回,没有改变原来的数组。与foeEach区别在于返回了一个新的数组。
var test = [1, 2, 3, 4]
test1 = test.map(x => x * 2);
console.log(test) // [1, 2, 3, 4]
console.log(test1) // [2, 4, 6, 8]
3. Array.filter()
将数组所有元素进行判断,把符合要求的元素组成新数组返回。
var test = [1, 2, 3, 4]
test1 = test.filter(x => x > 2);
console.log(test) // [1, 2, 3, 4]
console.log(test1) // [3, 4]
4. Array.some()
将所有元素进行判断,返回一个布尔值,如果其中有元素满足条件则返回true,若都不满足则返回false。
var test = [1, 2, 3, 4]
test1 = test.some(x => x > 3);
console.log(test) // [1, 2, 3, 4]
console.log(test1) // true
5. Array.every()
与Array.come()类似,区别在于其中所有元素都满足才返回true,只要有一个不满足就返回false。
var test = [1, 2, 3, 4]
test1 = test.every(x => x > 3);
console.log(test) // [1, 2, 3, 4]
console.log(test1) // false
6. Array.push()与Array.pop()
push是在数组后面添加新元素,返回最后一个添加的元素;
pop是删除最后一个元素,两者皆改变了原数组。
var test = [1, 2, 3, 4]
test1 = test.push(5, 6, 7);
console.log(test) // [1, 2, 3, 4, 5, 6, 7]
console.log(test1) // 7
var test = [1, 2, 3, 4]
test1 = test.pop();
console.log(test) // [1, 2, 3]
console.log(test1) // 4
7. Array.shift()与Array.unshift()
shift是删除数组第一个元素,并返回被删除的元素。
unshift是在数组头部添加相应的元素,并返回添加后数组的length。两者皆改变了原数组。
var test = [1, 2, 3, 4]
test1 = test.shift();
console.log(test) // [2, 3, 4]
console.log(test1) // 1
var test = [1, 2, 3, 4]
test1 = test.unshift(-1, 0);
console.log(test) // [-1, 0, 1, 2, 3, 4]
console.log(test1) // 6
8. Array.reduce()与Array.reduceRight()
reduce是将数组所有元素都调用返回函数,并返回最后结果,传入的值必须是函数类型。不改变原数组。
var test = [1, 2, 3, 4]
function add(a, b) {
return a + b;
}
test1 = test.reduce(add)
console.log(test) // [1, 2, 3, 4]
console.log(test1) // 10
也可以写成:
var test = [1, 2, 3, 4]
test1 = test.reduce((a, b) => {return a+b})
console.log(test) // [1, 2, 3, 4]
console.log(test1) // 10
reduceRight遇之类似,区别是reduceRight是从右往左执行罢了。
9. Array.isArray()
判断对象是否是数组,返回布尔值。不改变原数组。
var a = 1
var test = [1, 2, 3, 4]
console.log(Array.isArray(a)) // false
console.log(Array.isArray(test)) // true
10. Array.concat()
将多个数组拼接成一个。返回拼接后的新数组,不改变原数组
var test1 = [1, 2, 3, 4]
var test2 = [5, 6]
test3 = test1.concat(test2)
console.log(test3) // [1, 2, 3, 4, 5, 6]
console.log(test1) // [1, 2, 3, 4]
console.log(test2) // [5, 6]
11. Array.toString()
将数组转化为字符串,返回字符串,不改变原数组
var test = [1, 2, 3, 4]
test1 = test.toString()
console.log(test) // [1, 2, 3, 4]
console.log(test1) // 1,2,3,4
12. Array.join()
与toString()类似,区别在于可以传入参数,表示每个元素之间的间隔。返回字符串,不改变原数组。
var test = [1, 2, 3, 4]
test1 = test.join('!')
console.log(test) // [1, 2, 3, 4]
console.log(test1) // 1!2!3!4
13. Array.splice()
很灵活的方法,具体使用方法为:Array.splice(num1, num2, arg1, arg2...)
num1为操作执行开始的位置,如0表示从array[0],即数组头部开始。
num2表示要删除的元素个数,从num1开始执行(包括num1)
arg1,arg2.....表示要添加的元素。
该方法返回删除的元素组成的数组,不会改变原数组。
var test = [1, 2, 3, 4]
test1 = test.splice(1, 2, 'haha!', 'wow!')
console.log(test) // [1, 'haha', 'wow', 4]
console.log(test1) // [2, 3]
14. Array.slice()
使用方法为Array.slice(start, end),表示从已有的数组中返回选定的元素。
返回选定元素组成的数组,该方法不改变原数组。
注意(start, end)这里被处理成[1, 2),即包括start,但不包括end。
var test = [1, 2, 3, 4]
test1 = test.slice(0, 1)
console.log(test) // [1, 2, 3, 4]
console.log(test1) // [1]
若只传入一个值,则表示从该值到数组末尾。
var test = [1, 2, 3, 4]
test1 = test.slice(1)
console.log(test) // [1, 2, 3, 4]
console.log(test1) // [2, 3, 4]