一:改变原数组的方法
1. push()—— unshift()尾部头部添加
语法:array.push(item1, item2, …, itemX)
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
返回值 数组新长度,不改变原数组
// push在数组后面添加
let sum=n.push("4")
// unshift 在数组前面添加
let num=n.unshift("4")
console.log(sum,num) //4
2. pop() —— shift() 尾部头部删除
语法:array.shift()
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
返回值 返回删除的元素
// pop 尾部删除
let sum=n.pop()
// shift头部删除
let num=n.shift()
console.log(sum,num) // 3,1
3. splice()添加或删除数组中的元素
语法:array.splice(index,howmany,item1,…,itemX)
index 必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany 可选。规定应该删除多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1 可选。要添加到数组的新元素
返回值 返回的是被删除的元素重组的数组。
let num=fruits.splice(2,2);
console.log(num,fruits) //(2) ["Apple", "Mango"] (2) ["Banana", "Orange"]
4. reverse() 颠倒数组中元素的顺序
语法:array.reverse()
返回值: 颠倒顺序后的数组
console.log(arr.reverse())
// ["Mango", "Apple", "Orange", "Banana"]
5: sort() 对数组的元素进行排序。
语法:array.sort(sortfunction)
sortfunction 可选。规定排序顺序。必须是函数。
排序顺序可以是字母或数字,并按升序或降序。
使用数字排序,你必须通过一个函数作为参数来调用。
返回值 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
let srr=points.sort(function(a,b){return a-b});
console.log(arr) // 1,5,10,25,40,100```
二:不改变原数组的方法
6. forEach:遍历数组
语法:[ ].forEach(function(value,index,array){});
value 参数是遍历的数组内容,
index 参数是对应的数组索引,
array 参数是数组本身
var numbers = [1,2,3,4,5];
var sum = 0;
numbers.forEach(number=>sum+=number)
console.log(sum)//15
7. map:将数组映射成另一个数组
语法: function(currentValue,index,arr)
map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map 不会改变原始数组。
let numbers = [1,2,3]
let doubled = numbers.map(function(item){
return number * 2;
})
console.log(item);//[2,4,6]
8. filter:从数组中找出所有符合指定条件的元素
语法:array.filter(function(value,index,arr), thisValue)
value 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象
thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。
如果省略了 thisValue ,“this” 的值为 “undefined”
filter() 检测数值元素,并返回符合条件所有元素的数组。 filter() 不会改变原始数组。
let n=[1,2,6,3,2,2,]
let s=n.filter(item=>{
return item>5
})
console.log(s) // [6]
9. reduce:将数组合成一个值
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值
reduce() 方法接收一个方法作为累加器,数组中的每个值(从左至右) 开始合并,最终为一个值。
1.计算数组中所有值的总和
let total=numbers.reduce((sum,num)=>{ // sum初始值是0
return sum + num
},0) // 60
10: concat() 连接两个或多个字符串
语法:string.concat(string1, string2, …, stringX)
返回值:两个或多个字符串连接后生成的新字符串。
let str2="world!";
let str3=" Have a nice day!";
let n = str1.concat(str2,str3);
console.log(n) // Hello world! Have a nice day!
11. slice:数组复制
语法: slice(start,end)
start 参数必须(不包含),规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置
end 参数不必须(包含),规定从何处结束选取
返回值 返回一个新数组,不改变原数组
let re=[1,2,3,4,5,8,9,6,2,4,5]
let n=re.slice(1,6)
console.log(n) // [2, 3, 4, 5, 8]
12. find:返回通过测试(函数内判断)的数组的第一个元素的值
语法:array.find(function(currentValue, index, arr),thisValue)
currentValue 必需。当前元素
index 可选。当前元素的索引值
arr 可选。当前元素所属的数组对象
它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
1.找到符合条件的对象
{name:"Jill"},
{name:"Alex",id:2},
{name:"Bill"},
{name:"Alex"}
];
user = users.find(function(user){
return user.name === "Alex";
})
console.log(user);// {name:"Alex",id:2}找到后就终止循环
2.根据指定对象的条件找到数组中符合条件的对象
{id:3,title:"Node.js"},
{id:1,title:"React.js"}
];
let comment = {postId:1,content:"Hello World!"};
function postForComment(posts,comment){
return posts.find(function(post){
return post.id === comment.postId;
})
}
console.log(postForComment(posts,comment));//{id: 1, title: "React.js"}
13. join() && toString() 把数组中的所有元素转换成一个符串
语法:array.join(separator)
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
返回值 返回一个字符串,不该变数组
语法:number.toString(radix)
radix:可选。规定表示数字的基数
返回值 把数字转换为字符串
toString返回值与没有参数的 join() 方法返回的字符串相同
let num= fruits.join(); // 默认逗号
console.log(num) //Banana,Orange,Apple,Mango,1,2
let sum= fruits.join('');
console.log(sum) // BananaOrangeAppleMango12
let arr=fruits.toString()
console.log(arr) // Banana,Orange,Apple,Mango,1,2
14. toLocaleString 把数组转换为本地字符串
语法:Date.toLocaleString()
返回值: 日期和时间以字符串形式输出。
let n=d.toLocaleString();
console.log(n) // 2021/8/9下午11:08:07
15: indexOf()
查找指定的字符串值在字符串中首次出现(索引)位置。
语法:string.indexOf(searchvalue,start)
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。
返回值:查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。
let n=str.indexOf("l");
console.log(n) // 2
16:includes() 用来判断一个数组是否包含一个指定的值
语法:arr.includes(value)
value:必须。需要查找的元素值。
如果找到就返回 true,否则false。
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true