Bootstrap

js中常见的改变原数组的方法

归纳:

ES5:push(), pop(), shift(), unshift(), reverse(),sort(),splice(),

ES6:copyWithin(),fill()

具体解释:

ES5:
(1)pop()------------->删除数组的最后一个元素,并返回

var s1=['s',1,4,9,0,1]
let mm=s1.pop();
console.log(s1);    //["s", 1, 4, 9, 0]
console.log(mm)  //1

(2)push()---------------->在数组尾部添加元素,返回的是更新后数组的长度。

var s1= ["s", 1, 4, 9, 0]
let mm1=s1.push('newData','ooo','lll');
console.log(s1);
// ["s", 1, 4, 9, 0, "newData", "ooo", "lll"]
console.log(mm1);
//8

(3)shift()---------------------------------->删除数组的第一个元素并返回

var s1=["s", 1, 4, 9, 0, "newData", "ooo", "lll"]
let d1=s1.shift();
console.log(s1);
// [1, 4, 9, 0, "newData", "ooo", "lll"]
console.log(d1)
// s

(4)unshift()----------------------->往数组第一位元素前面添加元素,返回更新后数组的长度。

var s1=[1, 4, 9, 0, "newData", "ooo", "lll"]
let mm2=s1.unshift('one','two');
console.log(s1);
//  ["one", "two", 1, 4, 9, 0, "newData", "ooo", "lll"]
console.log(mm2);
// 9

(5)sort()----------------------------->排序(按字符ASCII进行排序)
对于数组的升序排序,需要添加一个回调函数

不加回调函数:
var k1=[12,23,14,56,0,6,8]
k1.sort();
console.log(k1)
// [0, 12, 14, 23, 56, 6, 8]
加回调函数:
var k1=[12,23,14,56,0,6,8];
k1.sort((num1,num2)=>num1-num2);
console.log(k1);
//[0, 6, 8, 12, 14, 23, 56]

(6)reverse()------------------>数组反转

var k1= [0, 6, 8, 12, 14, 23, 56]
k1.reverse();
console.log(k1);
// [56, 23, 14, 12, 8, 6, 0]

(7)splice(index,howmany,要添加的新数据),返回被删除元素所组成的数组。

var k1= [56, 23, 14, 12, 8, 6, 0]
var mm3=k1.splice(0,1,'one','two');
console.log(k1);
//  ["one", "two", 23, 14, 12, 8, 6, 0]
console.log(mm3);
//  [56]

ES6:
(1)copyWithin(target,start,end);
作用:将指定位置的元素拷贝到指定位置
参数:target 必需,复制到指定目标索引位置。start 可选,元素复制的起始位置。end 可选,元素复制的终止位置。
返回值:发生改变后的数组
是否改变原始数组:是
实例如下:

var a=[1,2,3,4,5];

var c=a.copyWithin(0,3);

console.log(c);
// [4, 5, 3, 4, 5]
console.log(a);
//[4, 5, 3, 4, 5]

(2)fill(data,start,end):
作用:该方法是用一个自定义数据去替换数组中的元素。
返回值:发生改变后的数组,
参数:第一个参数自定义参数,必填。第二个参数:start,替换的起始位置,可选。第三个参数:end,替换的终止位置,可选。
是否改变愿数组:是
注意: IE 11 及更早版本不支持 fill() 方法。
示例如下:

var a=[4, 5, 3, 4, 5];
var m=a.fill("hello",3);

console.log(a)
// [4, 5, 3, "hello", "hello"]
console.log(m)
// [4, 5, 3, "hello", "hello"]
;