跳至主要內容

Array数组方法

狮子...大约 4 分钟面试JavaScript

不改变数组

Array every()

every() 方法检查数组中的所有元素是否都通过了测试(被作为函数提供)。

every() 方法对数组中存在的每个元素执行一次函数:

- 如果找到函数返回 false 值的数组元素,every() 返回 false(并且不检查剩余值)
- 如果没有出现 false,every() 返回 true

注释:every() 不对没有值的数组元素执行函数。

Array some()

some() 方法检查数组中的任何元素是否通过测试(作为函数提供)。

some() 方法对数组中存在的每个元素执行一次函数:

- 如果找到函数返回真值的数组元素,some() 返回真(并且不检查剩余值)
- 否则返回 false

注释:some() 对没有值的数组元素不执行函数。

Array ​filter()

​filter()---检测数组元素,并返回符合条件所有元素的数组。

Array find()

find() 方法返回数组中第一个通过测试的元素的值(作为函数提供)。

find() 方法对数组中存在的每个元素执行一次函数:

- 如果找到函数返回 true 值的数组元素,则 find() 返回该数组元素的值(区别filter找到后会停止遍历)
- 否则返回 undefined

注释:find() 不对空数组执行该函数。

const = arr1 = [
  { id: 1, rebateRatio: '', value: false },
  { id: 2, rebateRatio: '', value: false }
]
  const = arr2 = [
  { id: 1, rebateRatio: '0.3' },
]
const mergedArray = arr1.map(item => {
  const foundItem = arr2.find(i => i.id === item.id);
  if (foundItem) {
    return { ...item, rebateRatio: foundItem.rebateRatio, value: true };
  } else {
    return item;
  }
});

Array ​indexOf()

​indexOf()---搜索数组中的元素,并返回它所在的位置。

Array ​lastIndexOf()

​lastIndexOf()---返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

Array ​concat()

​concat()---连接两个或更多的数组,并返回结果。【es6用扩展运算符…】

arr.concat(array2, array3, ..., arrayX)

arr.concat([])arr.slice() 本质是 浅拷贝

Array ​slice()

slice() 方法以新的数组对象,返回数组中被选中的元素。

const arr = [1,2,3,4,5,6,7,8,9]
console.log(arr.slice()) // [1,2,3,4,5,6,7,8,9]
console.log(arr.slice(0)) // [1,2,3,4,5,6,7,8,9]
console.log(arr.slice(0, 3)) // [1,2,3]
console.log(arr.slice(2)) // [3,4,5,6,7,8,9]
console.log(arr.slice(-1)) // [9]
console.log(arr.slice(-3,-1)) // [7,8]
console.log(arr.slice(-1,-3)) // []

arr.slice() 第一层是深拷贝,多层之后就不行了,本质还是 浅拷贝

Array ​map()

​map()---通过指定函数处理数组的每个元素,并返回处理后的数组。

Array ​join()

​join()---把数组的所有元素放入一个字符串。

Array ​toString()

​toString()---把数组转换为字符串,并返回结果。

Array reduce()

reduce() 方法将数组缩减为单个值。

reduce() 方法为数组的每个值(从左到右)执行提供的函数。

函数的返回值存储在累加器中(结果/总计)。

注释:对没有值的数组元素,不执行 reduce() 方法。

reduce(function(total,currentValue,index,arr), initialValue)

const numbers = [15, 2, 1, 4]

function getSum(total, num) {
  return total + Math.round(num);
}

numbers.reduce(getSum) // 22
numbers.reduce(getSum, 5) // 27

改变原数组

Array pop()

pop()---删除并返回数组的最后一个元素。

Array ​push()

push()---向数组的末尾添加一个或更多元素,并返回新的长度。

Array shift()

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

Array unshift()

unshift()---向数组的开头添加一个或更多元素,并返回新的长度。

Array reverse()

reverse()---反转数组的元素顺序。

Array sort()

sort()---对数组的元素进行排序。

Array splice()

splice()---用于插入、删除或替换数组的元素。

array.splice(index, howmany, item1, …, itemX)
index: 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX: 可选。向数组添加的新项目。

const fruits = ["Banana", "Orange", "Apple", "Mango"]
// 在位置 2,添加 2 个元素:
fruits.splice(2, 0, "Lemon", "Kiwi") // Banana,Orange,Lemon,Kiwi,Apple,Mango

var fruits = ["Banana", "Orange", "Apple", "Mango"];
// 在位置 2,添加 2 个元素,删除 1 个元素:
fruits.splice(2, 1, "Lemon", "Kiwi") // Banana,Orange,Lemon,Kiwi,Mango

const fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi"];
// 在位置 2,删除 2 个项目:
fruits.splice(2, 2) // Banana,Orange,Kiwi
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5