js数组方法及使用

JavaScript 中数组有很多常用的方法,可以对数组进行各种操作,以下是常用的数组方法:

  1. push:在数组末尾添加一个或多个元素,返回新数组的长度
const arr = [1, 2, 3];
const length = arr.push(4, 5); // arr => [1, 2, 3, 4, 5], length => 5
  1. pop:从数组末尾删除一个元素,返回删除的元素
const arr = [1, 2, 3];
const lastItem = arr.pop(); // arr => [1, 2], lastItem => 3
  1. shift:从数组头部删除一个元素,返回删除的元素
const arr = [1, 2, 3];
const firstItem = arr.shift(); // arr => [2, 3], firstItem => 1
  1. unshift:在数组头部添加一个或多个元素,返回新数组的长度
const arr = [1, 2, 3];
const length = arr.unshift(-1, 0); // arr => [-1, 0, 1, 2, 3], length => 5
  1. splice:对数组进行截取或替换操作
const arr = [1, 2, 3];
const result1 = arr.splice(1, 1); // arr => [1, 3], result1 => [2]
const result2 = arr.splice(1, 0, 4, 5); // arr => [1, 4, 5, 3], result2 => []
  1. slice:对数组进行拷贝,返回一个新的数组
const arr = [1, 2, 3];
const newArray = arr.slice(1); // arr => [1, 2, 3], newArray => [2, 3]
  1. concat:将多个数组合并成一个新数组
const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const newArray = arr1.concat(arr2); // newArray => [1, 2, 3, 4, 5]
  1. indexOf:查找指定元素在数组中的位置,返回其下标,如果未找到,返回 -1
const arr = [1, 2, 3];
const index = arr.indexOf(2); // index => 1
  1. lastIndexOf:查找指定元素在数组中的最后位置,返回其下标,如果未找到,返回 -1
const arr = [1, 2, 3, 1, 2];
const lastIndex = arr.lastIndexOf(2); // lastIndex => 4
  1. forEach:遍历数组中的每个元素,对其进行操作
const arr = [1, 2, 3];
arr.forEach(function(item, index, array) {
  console.log(item, index, array);
});
// output:
// 1 0 [1, 2, 3]
// 2 1 [1, 2, 3]
// 3 2 [1, 2, 3]

需要注意的是,大多数组方法都是会对原数组进行修改的,如果需要不影响到原数组,可以使用一些不改变原数组的方法,例如 slice()concat() 等。

  1. join:将数组转换成字符串,用指定的分隔符分隔每个元素
const arr = [1, 2, 3];
const str = arr.join('-'); // str => '1-2-3'
  1. map:对数组中的每个元素进行处理,返回一个新的数组
const arr = [1, 2, 3];
const newArray = arr.map(function(item) {
  return item * 2;
}); // newArray => [2, 4, 6]
  1. filter:过滤数组中的元素,返回一个新的数组
const arr = [1, 2, 3];
const newArray = arr.filter(function(item) {
  return item > 1;
}); // newArray => [2, 3]
  1. reduce:对数组中的元素进行累加操作,返回累加的结果
const arr = [1, 2, 3];
const sum = arr.reduce(function(total, item) {
  return total + item;
}, 0); // sum => 6
  1. reverse:反转数组中的元素顺序
const arr = [1, 2, 3];
arr.reverse(); // arr => [3, 2, 1]
  1. sort:对数组中的元素进行排序,默认按照 Unicode 编码进行排序
const arr = [3, 2, 1];
arr.sort(); // arr => [1, 2, 3]
  1. some:判断数组中是否有至少一个元素满足给定条件,如果有,返回 true,否则返回 false
const arr = [1, 2, 3];
const hasEven = arr.some(function(item) {
  return item % 2 === 0;
}); // hasEven => true
  1. every:判断数组中是否所有元素都满足给定条件,如果是,返回 true,否则返回 false
const arr = [1, 2, 3];
const allEven = arr.every(function(item) {
  return item % 2 === 0;
}); // allEven => false
  1. find:查找数组中满足给定条件的第一个元素,并返回该元素,如果未找到,返回 undefined
const arr = [1, 2, 3];
const item = arr.find(function(element) {
  return element % 2 === 0;
}); // item => 2
  1. findIndex:查找数组中满足给定条件的第一个元素的索引,并返回该索引,如果未找到,返回 -1
const arr = [1, 2, 3];
const index = arr.findIndex(function(element) {
  return element % 2 === 0;
}); // index => 1
  1. includes:判断数组中是否包含指定元素,如果是,返回 true,否则返回 false
const arr = [1, 2, 3];
const hasTwo = arr.includes(2); // hasTwo => true
  1. flat:将嵌套数组展开成一维数组
const arr = [1, [2, 3], [4, [5]]];
const newArr = arr.flat(); // newArr => [1, 2, 3, 4, [5]]
  1. flatMap:对数组中的每个元素进行处理,然后将所有处理结果组成一个新的数组
const arr = [1, 2, 3];
const newArr = arr.flatMap(function(item) {
  return [item * 2];
}); // newArr => [2, 4, 6]
  1. keys:返回数组中所有键的迭代器
const arr = [1, 2, 3];
const iterator = arr.keys(); // iterator => Array Iterator {}
  1. values:返回数组中所有值的迭代器
const arr = [1, 2, 3];
const iterator = arr.values(); // iterator => Array Iterator {}
  1. entries:返回数组中所有键值对的迭代器
const arr = [1, 2, 3];
const iterator = arr.entries(); // iterator => Array Iterator {}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容