js 数组的增,删,插,查,排序,连接,拷贝

数组中常用的也就是增``````删``````插``````查``````排序``````连接``````拷贝

从尾部添加元素

let array = [1,2,4];
array.push(5);
console.log(array);  // 1,2,4,5;

从头部添加元素

let array = [1,2,4];
array.unshift(5);
console.log(array);  // 5,1,2,4

利用splice来增加数组中的元素

let array = [1, 2, 3, 4];
 let newArray = array.splice(4, 3, 5, 6, 7);
//其中可以看到splice(4,3,5,6,7)这里4是代表索引位置,从第4位开始包括第4位,3增加个数,后面就是增加的内容
 console.log(newArray)  // []
 console.log(array)   // [1,2,3,4,5,6,7];

其实splice也就是替代,插入的方法罢了!

从尾部删除元素

let array = [1,2,3,4,5];
array.pop();
console.log(array) // [1,2,3,4]

从头部删除元素

let array = [1,2,3];
array.shift();
console.log(array) // [2,3,4]

同样也可以用splice进行删除;
同上我们可以看到删除和增加是对应的,但是我们在项目中除了push splice方法用的可能还多一点,其他可能就是很少用到,可以说几乎用不到。

插、替换

插入操作也就是上面splice,插入,删除,以及替换

let array = [1,2,3,4,5,6];
// 中间删除
array.splice(2,2);
console.log(array)// 1,2,5,6
// 插入
array.splice(2,0,"3","55");
console.log(array);  // 1,2,3,3,55,3,5,6
// 替换
array.splice(2,2,'a');
console.log(array) // 1,2,a,5,6

排序

这只需要注意的就是默认排序是根据字母排序的,所以数字还是要写函数返回的

let letterArray = ['ab','dd','b','z','c','zo'];
letterArray.sort();
console.log(letterArray) //["ab", "b", "c", "dd", "z", "zo"]

let numberArray = [1,5,6,22,122,4,12];
numberArray.sort((a,b)=>{
     return a-b;
})
console.log(numberArray) // [1, 4, 5, 6, 12, 22, 122]

连接

在原来的方法上使用concat

let arrayOne = [1,2,3];
let arrayTwo = ["a","b"];
console.log(arrayOne.concat(arrayTwo)) // 1,2,3,a,b

拷贝

在定义的数组上,有时候会不让这个数组改变而定义一个新的数组。这个时候需要把握住怎样去做,不改变原数组。
直接赋值会改变原数组

let array = [1, 2, 3];
let newArray = array;
newArray.push(1);
console.log(array) // 1, 2, 3,1
console.log(newArray) // 1, 2, 3,1

利用slice深拷贝数组,原数组不改变

let array = [1, 2, 3];
let newArray = array.slice();
newArray.push(1);
console.log(array) // 1, 2, 3
console.log(newArray) // 1, 2, 3,1

利用es6新增的解构赋值,同样也不会改变原数组

let array = [1, 2, 3];
let newArray = [...array];
newArray.push(1);
console.log(array) // 1, 2, 3
console.log(newArray) // 1, 2, 3,1

查询一般就是查询一个数组中是否含有某个元素,在有就是查找这个元素在这个数组中的位置拿到索引值
find查找元素

let array = [1,4,6,8,3];
let newArray = array.find((item,index)=>{
   if(item === 4){
     return  true;
  }
  return false;
})
console.log(newArray) // 4

If 查询的数组中没有这个数则会返回undefined

includesfind相差不多,是检测数组中的元素

let array = [1, 2, 3, 4];
    console.log(array.includes(2))  // true

findIndex查找元素的索引值

let array = [1,4,6,8,3];
let newArray = array.findIndex((item,index)=>{
   if(item === 4){
     return  true;
  }
  return false;
})
console.log(newArray) // 1

同样如果查询不到返回也是undefined

有相同的作用于字符串的就是indexOf用来查询字符串中值得索引

let array = "1,4,6,8,3";
let newArray = array.indexOf(4)
console.log(newArray) // 3

本文连接:http://www.wangcanghai.cn/detailes?id=601a1985a455b911dc4377bf
访问博主发现新世界
后续也会持续更改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值