js数组常用方法

这篇博客详细介绍了JavaScript中数组的一些常用操作,包括数组转字符串、逆序、排序、合并、片段提取、映射、过滤、全符合检查、存在检查、叠加、扁平化以及填充等方法,是JS开发者的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组常用方法

数组转字符串

var arr = [1, 3, 5];
var str1 = arr.join(); // "1,3,5"
var str2 = arr.join("~"); // "1~3~5"

数组逆序

var arr = [1, 3, 5];
var arr1 = arr.reverse(); // [5,3,1]

数组排序

var arr = ["a", "c", "d", "b"];
arr.sort(); // ["a","b","c","d"];

// sort 会按照字符串的格式进行排序
var arr1 = [13, 25, 32, 14, 8];
arr1.sort(); // [13, 14, 25, 32, 8]

// 根据返回的数值决定谁排列在前面
arr1.sort(function (a, b) {
  return a - b;
});

数组合并

var arr = [1, 2, 3];
arr.concat(4, 5); // [1,2,3,4,5] ,这个只是返回值,原数组未修改
arr.concat([4, 5]); // [1,2,3,4,5]
arr.concat([[4, 5]]); // [1,2,3,[4,5]]

数组片段(传入起始下标和终止下标)

// 原数组并没有更改,只是将数组片段作为返回值返回
var arr = [1, 2, 3, 4, 5];
arr.slice(1, 3); //[2,3]
arr.slice(1); // [2,3,4,5]
arr.slice(1, -1); // [2,3,4]

数组片段(原数组会更改)

var arr = [1, 2, 3, 4, 5];
var arr1 = arr.splice(2);
console.log(arr); // [1, 2]
console.log(arr1); // [3, 4, 5]

var arr = [1, 2, 3, 4, 5];
var arr1 = arr.splice(2, 1);
console.log(arr); // [1, 2, 4, 5]
console.log(arr1); // [3]
 用其他数据去填充拆分出去的数组部分
var arr = [1, 2, 3, 4, 5];
var arr1 = arr.splice(2, 1, "x", "y", "z");
console.log(arr); // [1, 2, "x", "y", "z", 4, 5]
console.log(arr1); // [3]

数组映射

var arr = [1, 2, 3, 4, 5];
var arr1 = arr.map(function (x) {
  return Math.pow(x, 2);
}); //[1, 4, 9, 16, 25];

数组过滤

var arr = [1, 2, 3, 4, 5];
var arr1 = arr.filter(function (x) {
  return x % 2 != 0;
}); // [1, 3, 5]

判断每一个元素是否都符合条件

var arr = [1, 2, 3, 4, 5];
var flag = arr.every(function (x) {
  return x > 3;
}); // false

判断所有元素中是否至少有一个满足条件

var arr = [1, 2, 3, 4, 5];
var flag = arr.some(function (x) {
  return x > 3;
}); // true

数组的叠加操作

var arr = [1, 2, 3];
var arr1 = arr.reduce(function (x, y) {
  /*
    3 1
    4 2
    6 3
    */
  console.log(x, y);
  return x + y;
}, 3);

数组检索

var arr = [1, 3, 5, 7, 9];
// 第二个参数可以指定从第几个下标开始查找
console.log(arr.indexOf(5, 0)); //2
console.log(arr.indexOf(6)); //-1

// 查找数组中满足条件的第一个元素
const arr = [1, 2, 3];
let val = arr.find((item) => item >= 2);
console.log(val); //2

// 查找数组中满足条件的第一个元素的索引
const arr = [1, 2, 3];
let val = arr.findIndex((item) => item >= 2);
console.log(val); // 1

数组扁平化

let arr = [1, 2, [3, 4, 5, ["a", "b"]]];

// 传递的参数定义 需要展开到第几层。 Infinity 可以完全展开
let res = arr.flat(5);
console.log(res); //[1, 2, 3, 4, 5, "a", "b"]

结合函数的扁平化处理

let arr = [
  ["小明", 13, "chengdu"],
  ["小花", 15, "beijing"],
  ["小刘", 17, "chengdu"],
];

let res = arr.flatMap((item, index) => {
  /*
    ["小明", 13, "chengdu"] 0
    ["小花", 15, "beijing"] 1
    ["小刘", 17, "chengdu"] 2
    */
  console.log(item, index);

  // 接着进一步处理,只取出下标为 0 的数据(姓名)
  return item.filter((item, index) => index == 0);
});

// ["小明", "小花", "小刘"]
console.log(res);

数组填充

let arr = [1, 2, 3, 4];
arr.fill("x", 1, 3);
console.log(arr); // [1, "x", "x", 4]

检索数组中是否包含某值

let arr = ["a", "b", "c", "d"];
let res = arr.includes("b", 1); // 指定一个开始检索的下标
console.log(res); // true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值