经常用到,做一下记录。
1.新增元素
var arr = ['a','b','c',2,'apples']
var arr2 = ['d','e']
arr.push('new1')//6 在数组结尾添加,返回数组长度;改变原数组
console.log(arr)// ["a", "b", "c", 2, "apple", "new1"]
arr.unshift('new2'); //7 在数组头部添加,返回数组长度;改变原数组
console.log(arr)// ["new2", "a", "b", "c", 2, "apple", "new"]
let list1 = arr.concat('new3');// 返回新数组;不会改变原数组
console.log(list1)//["new2", "a", "b", "c", 2, "apple", "new", "new3"]
let list2 = arr.concat(arr2);// 返回新数组;不会改变原数组
console.log(list2)//["new2", "a", "b", "c", 2, "apple", "new", "d", "e"]
2.修改元素的值
var arr = ['a','b','c',2,'apples']
arr[0] = 'a2'; //0为索引
console.log(arr)// ["a2", "b", "c", 2, "apples"]
3.查找某个元素,获取索引
var arr = ['a','b','c',2,'apples']
arr.indexOf('apples'); //4 返回查找元素的索引,否则返回-1;不会改变原数组
arr.indexOf('e');//-1
arr.findIndex(function(item){
return item == 'a'
})//0 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
arr.findIndex(function(item){
return item == 'e'
})//-1 如果没有符合条件的元素返回 -1
arr.includes(val, index)
//val必须,需要查找的元素值。
//index可选。从该索引处开始查找 val。如果为负值,则按升序从 arr.length + index的索引开始搜索。默认为 0。
arr.includes('a')//true 如果找到指定值返回 true,否则返回 false。
arr.includes('e')//false
arr.indexOf(val,index)
//val 必需,规定需检索的字符串值。
//index 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 arr.length - 1。如省略该参数,则将从字符串的首字符开始检索。
arr.indexOf('a')//0 返回数组中某个指定的元素首次出现的位置。
arr.indexOf('e')//-1 没找到指定元素则返回 -1。
4.删除数组中的某个元素
var arr = ['a','b','c',2,'apples']
arr.pop(); //apples 删除数组最后一个值,返回删除的元素,数组为空返回undefined;改变原数组
console.log(arr)// ["a", "b", "c", 2]
arr.shift(); //a 删除数组第一个值,返回删除的元素,数组为空返回undefined;改变原数组
console.log(arr)// ["b", "c", 2]
arr.splice(1, 1); //["c"] 常用 删除指定元素(一般与indexOf一起用),前面1为索引,后面1删除一个
console.log(arr)// ["b", 2]
//filter方法是不会改变原数组,返回新数组。把传入的函数依次作用于每个元素,然后根据返回值是 true 还是false决定保留还是丢弃该元素。
var arr = [{select:true, produt: 'fruit'},{select:false, product:'meat'},{select:false, product:'meat'}]
let newArr= arr.filter(val => {//箭头函数
return !val.select;
}); //返回条件为true的所有元素
console.log(newArr)// [{select:false, product:'meat'}]