当前位置: 首页 > article >正文

js数组方法(大全)

  1. Array.at() 通过下标获取数值

Array.at(index) 获取对应下标的数值,index为下标值,正数时从左往右查询,负数时从右往左查询(默认值为0)。示例如下:

const array1 = [5, 12, 8, 130, 44];

let index = 2;

console.log(`Using an index of ${index} the item returned is ${array1.at(index)}`);
// Expected output: "Using an index of 2 the item returned is 8"

index = -2;

console.log(`Using an index of ${index} item returned is ${array1.at(index)}`);
// Expected output: "Using an index of -2 item returned is 130"

  1. Array.concat 数组拼接

拼接两个数组或者多个数组,返回的是新数组,不会改变原数组。示例如下:

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// Expected output: Array ["a", "b", "c", "d", "e", "f"]

  1. Array.entries() 数组迭代器对象

会一层一层迭代下下去,该对象包含数组中每个索引的键/值对。示例如下:

示例一:
const array1 = ['a', 'b', 'c'];

const iterator1 = array1.entries();

console.log(iterator1.next().value);
// Expected output: Array [0, "a"]

console.log(iterator1.next().value);
// Expected output: Array [1, "b"]

console.log(iterator1.next().value);
// Expected output: Array [2, "c"]

示例二:
const a = ["a", "b", "c"];

for (const [index, element] of a.entries()) {
  console.log(index, element);
}
// 0 'a'
// 1 'b'
// 2 'c'

示例三:
const array = ["a", "b", "c"];
const arrayEntries = array.entries();

for (const element of arrayEntries) {
  console.log(element);
}

// [0, 'a']
// [1, 'b']
// [2, 'c']

  1. Array.every() 判断指定元素是否通过测试(返回值为布尔值)

Array.every (element, index. array) 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。有三个参数,对应如下:

element

index

array

数组中正在处理的当前元素

下标

调用 every 的当前数组

示例如下:

示例一:
const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold));
// Expected output: true

示例二
function isBigEnough(element, index, array) {
  return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough);   // false
[12, 54, 18, 130, 44].every(isBigEnough); // true

  1. Array.fill() 填充修改数组

Array.fill(value, statr, end ) 方法用一个固定值填充一个数组中从起始索引(默认为 0)到终止索引(默认为 array.length)内的全部元素。它返回修改后的数组。

value

statr

end

改变的值

改变的下标

示例如下:

console.log([1, 2, 3].fill(4)); // [4, 4, 4]
console.log([1, 2, 3].fill(4, 1)); // [1, 4, 4]
console.log([1, 2, 3].fill(4, 1, 2)); // [1, 4, 3]
console.log([1, 2, 3].fill(4, 1, 1)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 3)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, -3, -2)); // [4, 2, 3]
console.log([1, 2, 3].fill(4, NaN, NaN)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 5)); // [1, 2, 3]
console.log(Array(3).fill(4)); // [4, 4, 4]

Array.filter() 数组过滤,筛选

Array.filter(element, index, array) 不会改变原数组,创建一个新的数组

element

index

array

数组中当前正在处理的元素。

正在处理的元素在数组中的索引。

调用了 filter() 的数组本身。

示例如下

示例一:
筛选排除对比小的值
function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]

示例二:
找出下列输入所有质数
const array = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];

function isPrime(num) {
  for (let i = 2; num > i; i++) {
    if (num % i === 0) {
      return false;
    }
  }
  return num > 1;
}

console.log(array.filter(isPrime)); // [2, 3, 5, 7, 11, 13]

示例三:
在数组中搜索
const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];

/**
 * 根据搜索条件(查询)筛选数组项
 */
function filterItems(arr, query) {
    return arr.filter((el) => el.toLowerCase().includes(query.toLowerCase()));
}

console.log(filterItems(fruits, 'ap')); // ['apple', 'grapes']
console.log(filterItems(fruits, 'an')); // ['banana', 'mango', 'orange']

  1. Array.find() 返回测试中第一个满足的元素的值

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

element

index

array

当前遍历到的元素。

当前遍历到的索引。

数组本身。

示例如下:

示例一:
const inventory = [
  {name: 'apples', quantity: 2},
  {name: 'bananas', quantity: 0},
  {name: 'cherries', quantity: 5},
  {name: 'cherries', quantity: 6}
];

function isCherries(fruit) {
  return fruit.name === 'cherries';
}

console.log(inventory.find(isCherries));
// { name: 'cherries', quantity: 5 }
// 只会返回满足条件的第一个数据

示例二:
使用箭头函数和解构赋值
const inventory = [
  {name: 'apples', quantity: 2},
  {name: 'bananas', quantity: 0},
  {name: 'cherries', quantity: 5}
];

const result = inventory.find(({ name }) => name === 'cherries');

console.log(result) // { name: 'cherries', quantity: 5 }

  1. Array.findIndex() 查询到满足的条件,返回对应下标,否则返回-1

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

const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 46;

console.log(array1.findIndex(isLargeNumber));
// Expected output: 3

const isLargeNumber = (element) => element > 144;

console.log(array1.findIndex(isLargeNumber));
// Expected output: -1

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/findLast


http://www.kler.cn/a/2106.html

相关文章:

  • 【Linux系统编程】:信号(2)——信号的产生
  • 【WRF教程第3.1期】预处理系统 WPS 详解:以4.5版本为例
  • OB删除1.5亿数据耗费2小时
  • day5,数据结构,单向,双向,循环链表
  • qlib优缺点
  • 2024年合肥师范学院信息安全小组内部选拔赛(c211)WP
  • 【Linux入门篇】操作系统安装、网络配置
  • QT搭建MQTT开发环境
  • 【数据结构】Java实现双向链表
  • 个人小站折腾后记
  • Linux命令---设备管理
  • 太强了,英伟达面对ChatGPT还有这一招...
  • 文心一言实际测试——让我们拿实际说好坏
  • QT 如何提高 Qt Creator 的编译速度
  • 【十二天学java】day04-流程控制语句
  • MySQL-存储过程
  • Java实习生------MySQL10道面试题打卡
  • vue3使用vee-validate自定义表单校验,提交实现步骤
  • 收到6家大厂offer,我把问烂了的《Java八股文》打造成3个文档。共1700页!!
  • Java之类与对象(图文结合)
  • C++实现通讯录管理系统
  • async与await异步编程
  • WPF 认识WPF
  • Mybatis的多表操作
  • unity3d游戏运行时lua热重载
  • Kaggle实战入门:泰坦尼克号生还预测(进阶版)