JavaScript 系列之数组(二)

402 阅读3分钟

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

二、截取拼接

2.1 slice

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝。原始数组不会被改变。

arr.slice([begin[, end]])

注意:复制的数组包含 start 下标元素,不包含 end 下标元素

  • @params:起始下标 start 与结束下标 end,起始 start 必传,end 不传默认复制到数组结束位置,可使用负值从数组的尾部选取元素。
  • @return:返回复制的子数组
  • 是否改变原数组:不改变
var arr = [1, 2, 3, 6, 7, 8];
var res = arr.slice(1, 4);    
console.log(res);  // [2,3,6]
console.log(arr);  // [1,2,3,6,7,8]

2.2 concat

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

  • @params:多个任意项,可以是数组,可以是单个项
  • @return:返回合并后的新数组
  • 是否改变原数组:不改变
var arr = [1, 2, 3];
var res = arr.concat(1, [0, 0]);    
console.log(res);  // [1,2,3,1,0,0]
console.log(arr);  // [1,2,3]

三、查找判断

3.1 includes

includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。

arr.includes(valueToFind[, fromIndex])

  • @params:参数一必传,表示要查询的元素,参数二可选,表示从指定位置查起(若为负数,从后查起,负数超过数组长度,则置为 0)
  • @return:返回布尔值
  • 是否改变原数组:不改变
var arr = [1, 2, 3];
var res = arr.includes(2);  

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

3.2 find

find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。

arr.find(function(item, index, array){}, thisArg)

  • @params:函数,thisAr表示执行回调时this指向的对象
  • @return:第一个满足条件的元素或 undefined
  • 是否改变原数组:不改变
const array = [5, 12, 8, 130, 44];
const found = array.find(element => element > 10);

console.log(found);  // 12
console.log(array);  // [5, 12, 8, 130, 44]

3.3 findIndex

findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回 -1。

arr.findIndex(callback[, thisArg])

  • @params:函数,thisAr表示执行回调时this指向的对象
  • @return:第一个满足条件的索引或 -1
  • 是否改变原数组:不改变
const array = [5, 12, 8, 130, 44];
const found = array.findIndex(element => element > 10);

console.log(found);  // 1
console.log(array);  // [5, 12, 8, 130, 44]

3.4 indexOf

indexOf() 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 -1。

arr.indexOf(searchElement[, fromIndex])

  • @params:参数一必传,表示要查询的元素,参数二可选,表示从指定位置查起
  • @return:如若检索项存在,返回其下标,没有就返回 -1
  • 是否改变原数组:不改变
var arr = [1, 2, 3];
console.log(arr.indexOf(2));  // 1
console.log(arr.indexOf(8));  // -1

3.5 lastIndexOf

lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。

arr.lastIndexOf(searchElement[, fromIndex])

  • @params:参数一必传,表示要查询的元素,参数二可选,表示从指定位置查起
  • @return:如若检索项存在,返回其下标,没有就返回 -1
  • 是否改变原数组:不改变
var arr = [1, 2, 3, 2, 2, 3, 4];
console.log(arr.lastIndexOf(3));  // 5