数组常用方法

面试时被问到只答出了几个自己最喜欢用的,相信每个人都有自己喜欢的数组操作方法。

整理出来都放这里了

push()

功能:向数组末尾添加一个或多个元素,并返回新的长度。

let fruits = ['apple', 'banana'];
let newLength = fruits.push('orange');
console.log(fruits); // ['apple', 'banana', 'orange']
console.log(newLength); // 3

pop()

功能:删除并返回数组的最后一个元素。

let fruits = ['apple', 'banana', 'orange'];
let lastFruit = fruits.pop();
console.log(fruits); // ['apple', 'banana']
console.log(lastFruit); // 'orange'

shift()

功能:删除并返回数组的第一个元素。

let fruits = ['apple', 'banana', 'orange'];
let firstFruit = fruits.shift();
console.log(fruits); // ['banana', 'orange']
console.log(firstFruit); // 'apple'

unshift()

功能:向数组的开头添加一个或多个元素,并返回新的长度

let fruits = ['banana', 'orange'];
let newLength = fruits.unshift('apple');
console.log(fruits); // ['apple', 'banana', 'orange']
console.log(newLength); // 3

concat()

功能:连接两个或多个数组,并返回一个新数组。

let fruits1 = ['apple', 'banana'];
let fruits2 = ['orange', 'pear'];
let allFruits = fruits1.concat(fruits2);
console.log(allFruits); // ['apple', 'banana', 'orange', 'pear']

splice()

功能:向/从数组中添加/删除项目,然后返回被删除的项目。

let fruits = ['apple', 'banana', 'orange'];
fruits.splice(1, 1, 'pear'); // 删除1个元素('banana'),并插入'pear'
console.log(fruits); // ['apple', 'pear', 'orange']

forEach()

  • 功能:对数组中的每个元素执行一次提供的函数。
let fruits = ['apple', 'banana', 'orange'];
fruits.forEach(fruit => {
  console.log(fruit);
});
// 输出:
// 'apple'
// 'banana'
// 'orange'

map()

功能:创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数后返回的结果。

let numbers = [1, 4, 9];
let roots = numbers.map(Math.sqrt);
console.log(roots); // [1, 2, 3]

filter()

功能:创建一个新数组,包含通过所提供函数实现的测试的所有元素。

let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

reduce()

功能:对数组中的每个元素执行一个提供的函数,将其结果汇总为单个值。

let numbers = [1, 2, 3, 4];
let sum = numbers.reduce((acc, current) => acc + current, 0);
console.log(sum); // 10

every()

功能:检测数组中的所有元素是否都通过了指定函数的测试。

let ages = [18, 20, 25, 30];
let isAdult = ages.every(age => age >= 18);
console.log(isAdult); // true

some()

功能:检测数组中的某些元素是否通过了指定函数的测试。

let temperatures = [0, 10, 15, 25];
let hasWarmTemperature = temperatures.some(temp => temp > 20);
console.log(hasWarmTemperature); // true

find()

功能:返回数组中满足提供的测试函数的第一个元素的值。

let people = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Jim', age: 20 }
];
let person = people.find(p => p.age === 30);
console.log(person); // { name: 'Jane', age: 30 }

findIndex()

功能:返回数组中满足提供的测试函数的第一个元素的索引。

 

let people = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Jim', age: 20 }
];
let index = people.findIndex(p => p.age === 30);
console.log(index); // 1

indexOf()

功能:返回数组中第一个找到的指定元素的索引,如果不存在则返回 -1。

let numbers = [1, 2, 3, 4, 2];
let index = numbers.indexOf(2);
console.log(index); // 1

lastIndexOf()

功能:返回数组中最后一个找到的指定元素的索引,如果不存在则返回 -1。

let numbers = [1, 2, 3, 4, 2];
let lastIndex = numbers.lastIndexOf(2);
console.log(lastIndex); // 4

includes()

功能:判断数组是否包含某个元素,返回 true 或 false。

let numbers = [1, 2, 3, 4];
let includesTwo = numbers.includes(2);
console.log(includesTwo); // true

slice()

功能:返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。

let fruits = ['apple', 'banana', 'orange', 'grapefruit'];
let citrus = fruits.slice(2);
console.log(citrus); // ['orange', 'grapefruit']

sort()

功能:对数组的元素进行排序并返回排序后的数组。

let fruits = ['banana', 'apple', 'orange', 'grape'];
fruits.sort();
console.log(fruits); // ['apple', 'banana', 'grape', 'orange']

reverse()

功能:颠倒数组中元素的顺序,原地修改数组。

let numbers = [1, 2, 3, 4, 5];
numbers.reverse();
console.log(numbers); // [5, 4, 3, 2, 1]
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值