❤️数组的15个API方法

一:改变原数组的方法

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值