JavaScript 系列之数组(一)

1,003 阅读2分钟

这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战

image.png

一、增删查改

1.1 push

push() 方法将一个或多个元素添加到数组的末尾,并返回新数组的长度。

arr.push(element1, ..., elementN)

  • @params:数组要新增的元素(任意数据类型,一次可添加多个,用逗号隔开)
  • @return:返回数组新增元素后的长度
  • 是否改变原数组:改变
var arr = [1, 2, 3];
var res = arr.push(6, 7, 8);    
console.log(res);   // res = 6
console.log(arr);   // [1,2,3,6,7,8]

1.2 unshift

unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。此方法更改数组的长度。

arr.unshift(element1, ..., elementN)

  • @params:数组要新增的元素(任意数据类型,一次可添加多个,用逗号隔开)
  • @return:返回数组新增元素后的长度
  • 是否改变原数组:改变
var arr = [1, 2, 3];
var res = arr.unshift(6, 7, 8);    

console.log(res);  // res = 6
console.log(arr);  // [6,7,8,1,2,3]

1.3 pop

pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。

arr.pop()

  • @params:无
  • @return:返回数组被删除的元素
  • 是否改变原数组:改变
var arr = [1, 2, 3];
var res = arr.pop();    

console.log(res);  // res = 3
console.log(arr);  // [1,2]

1.4 shift

shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

arr.shift()

  • @params
  • @return
  • 是否改变原数组:改变
var arr = [1, 2, 3];
var res = arr.shift();    

console.log(res);  // res = 1
console.log(arr);  // [2,3]

1.5 splice

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

  • @params:不限参数, n,m,x,...第一个参数n是必传(数组的下标,代表从第n个元素起),第二个参数(可选)代表要删除(或被替代,取决于第三个参数是否有值)的元素个数,第三个参数(可选)起,代表要添加(或替代)的元素
  • @return:返回值是一个数组,里面是删除项
  • 是否改变原数组:改变
// 删除
var arr = [1, 2, 3];
var res = arr.splice(1);  // 只传第一个参数,表示删除从下标为 1 的元素起,到最后一个元素
console.log(res);  // [2, 3]
console.log(arr);  // [1]
// arr.splice(0):可以清空数组,把原始数组中的内容基于新数组储存起来(有点类似于数组克隆)
// arr.splice(arr.length-1):删除最后一项
// arr.splice(0, 1):删除第一项

// 增加
var arr = [1, 2, 3];
var res = arr.splice(1, 0, 8, 9);  // 第二个参数为0,表示不删除,之后的参数表示插进数组,下标从1开始,之前的元素往后挪
console.log(res);  // []
console.log(arr);  // [1, 8, 9, 2, 3]

// 改(替代)    
var arr = [1, 2, 3];
var res = arr.splice(1, 1, 8, 9);  // 第二个参数为1,表示替代掉下标为1的元素
console.log(res);  // [2]
console.log(arr);  // [1, 8, 9, 3]