js数组常用api

今天和大家分享一些数组常用的api

目录

Array

push()

pop()

shift()

unshift()

splice()

sort()

concat()

join()

reverse()

slice()

Array.isArray()

Array.from()

indexOf(Str[,num])

includes()

forEach

map

reduce

Object


Array

push()

push(data[,data]) 依次往数组最后添加数组项 ,可以添加多个

let arr = [1,2,3]
let arr1 = arr.push(4,5)
console.log(arr)  // [1,2,3,4,5]  
// 返回值新数组的length    改变原数组

pop()

删除数组最后一项

let arr = [1,2,3]
let arr1 = arr.pop()
console.log(arr) // [1,2]
// 返回值是删除的数值  改变原数组

shift()

移除数组中第一项并返回该项

let arr = [1,2,3]
let arr1 = arr.shift()
console.log(arr)     // [2,3]
// 返回值是删除的数值   改变原数组

unshift()

在数组前添加任意数组项,可以添加多个

let arr = [1,2,3]
let arr1 = arr.unshift(0)    // 改变原数组       
console.log(arr) // [0,1,2,3] 
// 返回值新数组的length          改变原数组

splice()

splice(index,num,info) 具有截取,替换,添加方法

//- index 从数组第几个项开始
//- num  截取的数量 
//- info 从截取位置开始添加数组项
//- 会改变原数组  返回截取的数组
​
let arr = [1,2,3,4,5]
arr.splice(2,3,"a","b")
console.log(arr)
​
//1)截取方法     截取数量
let arr = [1,2,3,4]
arr.splice(1,2)
​
//2)添加方法    截取数量为零
arr.splice(1,0,1)
arr.splice(1,0,1,2,3)  // 添加多个  
​
//4)替代方法    截取数量与添加相同
arr.splice(0,0,5)

sort()

sort( function ) 数组排序

// function 参数为一个函数体   函数体接收两个形参
// 不传参数 根据ASCII码表 来比较数组中的第一个值排序
​
let arr = [22,44,11,33,55]
arr.sort(function(a,b){
    return a - b //从小到大排列
    return b - a //从达到小排列
})
console.log(arr)

concat()

合并两个数组为一个新的数组 不改变原数组

let arr1 = [1,2,3]
let arr2 = ["a","b","c"]
let arr = arr1.concat(arr2)
console.log(arr)

join()

join(str) 根据参数规则返回新的字符串 不改变原数组

let arr = [1,2,3,4]
let arr1 = arr.join("-")
console.log(arr1) // 1-2-3-4
// 将数组合并成字符串

reverse()

数组反向排序 改变原数组

let arr = [1,2,3,4]
let arr1 = arr.reverse()
console.log(arr1)  // [4, 3, 2, 1]

slice()

slice(startNum,endNum) 截取数组

let arr = [1,2,3,4]
arr.slice(1,3)
// startNum 参数为起始位置(包含), endNum 参数结束位置(不包含)
// endNum 参数不写 默认截取所有的

Array.isArray()

判断是否是数组

let arr = [1,2,3]
console.log(Array.isArray(arr))//true

Array.from()

把类数组(获取一组元素,arguments)对象转成数组

indexOf(Str[,num])

查找到数组项返回下标, 否则返回-1, 与字符串使用一样

let arr = [1,2,3]
arr.indexOf(2)
// Str 参数为查找字符, num 参数为查找开始位置
// num参数不写 默认从0开始

includes()

查看数组中是否包含参数的值,返回布尔值

var arr = ["apple" , "origan","banana"];
var a = arr.includes("apple");
console.log(a);   // true
​
var b = arr.includes("apple2");
console.log(b);   // false

forEach

循环数组,无返回值

var arr = ["a","b","c","d"]
arr.forEach(function(value,index,arr){
    console.log(value,index,arr);
})

map

正常情况下,需要配合return使用,返回新数组,如果没有return,这个就相当于forEach

map如果没有return 则返回元素项数个undefined组成的新数组

// 整理数据结构
let arr= [
    {title: "aa",read: 100},
    {title: "bb",read: 20},
    {title: "cc",read: 50}
]
let newArr = arr.map((item,index,arr) => {
    let json = {};
    json.shop = `*${item.title}--`;
    json.price = `¥${item.read}元`
    return json;
})
console.log(arr);
console.log(newArr);

reduce

用的极少,比如求数组的和,阶乘都可以

let arr = [1,2,3,4,5,6,7,8,9,10]
let res = arr.reduce((prev,cur,index,arr) => {
    return prev + cur;
})
console.log(res);  //55
// prev是上一次的运算结果,cur是当前的值,index是当前的下标,arr是当前的数组

Object

Object.assign(目标对象,需要合并的对象)

let json = {a:1};
let json2 = {b:2};
let json3 = {c:3};
​
let obj = Object.assign({},json,json2,json3);
console.log(obj);     // {a: 1, b: 2, c: 3}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值