js数组的操作方法,concat、slice、splice、join、indexOf、lastIndexOf

在这里插入图片描述
1.操作方法
(1)concat(): 基于当前数组当中的所有项创建一个新的数组。简单的说在不传参的情况下,就是复制当前数组创建副本,如果传参,会先创建副本,然后将接收到的参数添加到这个副本的末尾,如果传递的参数是一个或者多个数组,concat()方法会将这些数组的每一项都添加到副本数组中。如果传递的是其他值,则会直接添加到副本数组的末尾。

var arr = [1, 2, 3];
var arr1 = arr.concat('lilei', [4, 5], {age: 26, jod: 'HS'});
console.log(arr1);// [1, 2, 3, "lilei", 4, 5, {age: 26, jod: 'HS'}]
console.log(arr);//[1, 2, 3] //不会影响原数组

(2)slice( start, end ): start为必填参数。基于当前数组中的一个或多个项创建一个新的数组。接收一个或两个参数,如果只传入一个参数,该方法返回从该参数在当前数组当中的指定位置开始,到当前数组末尾的所有项。

var color = ['red', 'yellow', 'blue', 'green'];
var color1 = color.slice(1);
console.log(color1);['yellow', 'blue', 'green']

传入两个参数,slice( start, end )方法返回起始和结束位置之间的项,但是不包括结束位置的项。

var color = ['red', 'yellow', 'blue', 'green'];
var color1 = color.slice(1, 3);
console.log(color1);// ['yellow', 'blue']

slice()方法的参数当中有负数,则会把数组的长度加上该参数来确定相应的位置。

var num = [1, 2, 3, 4, 5, 6];
var num1 = num.slice(-3);
var num2 = num.slice(-3, -1);
console.log(num1);// [4, 5, 6]
console.log(num2);// [4, 5]

(3)splice(index, num, item1, ..., itm2) :该方法始终都会返回一个数组。返回的数组包含从原始数组中删除的项,并且改变原数组。
index:必填,规定添加或删除项的位置,可以使用负数,负数的规则和slice()方法一样。
num:必填,规定要删除项的数量。如果值为0,则默认不删除。
item1, ..., itemn: 可选,向数组中添加的项。


var color = ['red', 'blue', 'green', 'yellow'];
//删除
var del = color.splice(1, 2); //从下标 1 的项开始,删除2项。
console.log(color);// ["red", "yellow"]
console.log(del);// ["blue", "green"] 返回删除项组成的数组

/**
第二个参数为0,默认不删除,从下标 1 插入 '#fff', '#000'
**/
var add = color.splice(1, 0, '#fff', '#000');
console.log(add); // []
console.log(color);//  ["red", "#fff", "#000", "yellow"]

/**
先删除color数组从下标 1 开始的两个项,在从下标 1 插入'white', 'black'。 
**/
var replace = color.splice(1, 2, 'white', 'black');
console.log(replace);// ["#fff", "#000"]
console.log(color);// ["red", "white", "black", "yellow"]

(4)join(): 用于把数组中的所有项放入一个字符串,接收一个参数,指定分割的符号,如果不传参数,默认使用逗号为分割符。

var color = ['red', 'green', 'yellow'];
var val = color.join();//默认不传参数,不改变原数组
console.log(color);//["red", "green", "yellow"]
console.log(val); //"red,green,yellow"

var num = [1, 2, 3];
var str = num.join('-');
console.log(num); //[1, 2, 3]
console.log(str); //'1-2-3'

2.位置方法
indexOf()lastIndexOf(): 这两个方法接收两个参数:要查找的项和表示查找起点位置的索引(可选)。其中indexOf()方法是从数组开始的位置(下标为0)查找,lastIndexOf()方法则是从数组的末尾开始向前查找。如果查找不到则返回 -1 ,查找到则返回查找的项在数组中的位置。

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var index = num.indexOf(3);
var index1 = num.indexOf(8, 4);//从下标 4 开始查找 8。
var index2 = num.indexOf(10)
console.log(index); // 2
console.log(index1); // 7
console.log(index2) //-1

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var lastIndex = num.lastIndexOf(3);
var lastIndex1 = num.lastIndexOf(8, 4);
var lastIndex2 = num.lastIndexOf(10);
console.log(lastIndex) // 2
/**
因为指定了开始查找的位置,从下标 4 向数组前查找,查找不到所以返回 -1
**/
console.log(lastIndex1)// -1 
console.log(lastIndex2)// -1
 
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值