array数组对象以及常用方法

数组(Array)是一种数据结构,用于存储具有相同类型的数据元素的有序集合。

1.定义数组

// 通过字面量方式定义数组: let  数组名 = [值, 值, 值];
let numbers = [1, 2, 3, 4, 5];

// 通过构造函数定义数组: let 数组名 = new Array(值, 值, 值);(new Array() 是固定写法)
let fruits = new Array("apple", "banana", "cherry");

2.遍历数组(通过循环的方式获取数组中的值)

let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    console.log(numbers[i]);
}

// 或者使用 forEach 方法
numbers.forEach(number => console.log(number));

3.访问数组元素

let numbers = [1, 2, 3, 4, 5];
let firstNumber = numbers[0]; // 1

let fruits = ['apple', 'banana', 'cherry'];
let secondFruit = fruits[1]; // 'banana'

4.更新数组元素

let numbers = [1, 2, 3, 4, 5];
numbers[2] = 10; // 数组现在为 [1, 2, 10, 4, 5]

let fruits = ['apple', 'banana', 'cherry'];
fruits[1] = 'blueberry'; // 数组现在为 ['apple', 'blueberry', 'cherry']

5.常用方法

1)添加元素到数组:
  • push() 向数组末尾添加一个或多个元素,并返回新的数组长度。
let arr = [1, 2, 3];
arr.push(4, 5);
console.log(arr); // 输出: [1, 2, 3, 4, 5]
  • unshift() 向数组开头添加一个或多个元素,并返回新的数组长度。
let arr = [1, 2, 3];
let newLength = arr.unshift(0, 1);
console.log(newLength); // 输出: 5
console.log(arr); // 输出: [0, 1, 1, 2, 3]
2)从数组中删除元素:
  • pop() 删除数组的最后一个元素,并返回该元素。

let arr = [1, 2, 3];
let lastElement = arr.pop();
console.log(lastElement); // 输出: 3
console.log(arr); // 输出: [1, 2]
  • shift() 删除数组的第一个元素,并返回该元素。

let arr = [1, 2, 3];
let firstElement = arr.shift();
console.log(firstElement); // 输出: 1
console.log(arr); // 输出: [2, 3]
3)合并数组:
  • concat() 合并两个或多个数组,不改变现有数组,返回一个新数组。
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = [7, 8, 9];
let newArr = arr1.concat(arr2).concat(arr3);
console.log(newArr); // 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
4)转换数组为字符串:
  • join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
let arr = ['apple', 'banana', 'orange'];
let str = arr.join('、 ');
console.log(str); // 输出: "apple、 banana、 orange"
5)查找数组元素:
  • indexOf() 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
let arr = ['a', 'b', 'c', 'a', 'b', 'c'];
let index = arr.indexOf('a');
console.log(index); // 输出: 0
  • includes() 判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。这个方法是区分大小写的,并且使用全等比较(===)。
const array = [1, 2, 3, 4, 5];

console.log(array.includes(3)); // 输出 true,因为数组包含元素3
console.log(array.includes(6)); // 输出 false,因为数组不包含元素6

console.log(array.includes(2, 2)); // 输出 false,从索引2开始搜索,不包含元素2
console.log(array.includes(3, -3)); // 输出 true,从倒数第三个索引开始搜索,包含元素3
6)数组切片:
  • slice() 返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)的浅拷贝的原数组的片段。
let arr = ['apple', 'banana', 'orange', 'kiwi', 'melon'];
let slicedArray = arr.slice(1, 4);
console.log(slicedArray); // 输出: ["banana", "orange", "kiwi"]
7)数组元素的添加和删除:
  • splice() 通过删除现有元素和/或添加新元素来更改一个数组的内容。
let arr = ['apple', 'banana', 'orange', 'pear'];
arr.splice(1, 2, 'kiwi', 'melon'); 
// 1是索引位置,2是元素个数,'kiwi', 'melon'是要替换的新元素
console.log(arr); 
// 最后输出: ["apple", "kiwi", "melon", 'pear']
8)数组排序:
  • sort() 对数组的元素进行排序,并返回排序后的数组。(a-b为升序,b-a为降序
// 默认排序(字符串排序,按照字符串的Unicode码点进行排序)
let fruits = ['banana', 'apple', 'cherry'];
fruits.sort();
console.log(fruits); // 输出: ["apple", "banana", "cherry"]

// 数值排序
let numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
console.log(numbers); // 输出: [1, 2, 3, 4, 5]

// 对象数组排序(按对象属性排序)
let users = [
  { name: 'John', age: 30 },
  { name: 'Jane', age: 25 }
];
users.sort((a, b) => a.age - b.age);
console.log(users);
// 输出: [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }]
9)数组反转:
  • reverse() 颠倒数组中元素的顺序。
let arr = [1, 9, 2, 3, 4, 5];
arr.reverse();
console.log(arr); // 输出: [5, 4, 3, 2, 9, 1]

 10)数组去重:
  • Set() 是一个不包含重复元素的集合,可以通过将数组转换为 Set 来去除重复项,然后再将其转换回数组。(注意首字母大写)
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // 输出: [1, 2, 3, 4, 5]
  •  Map() 是一个键值对的集合,其中每个键只能出现一次。可以通过 Map 来确保每个元素都是唯一的。(注意首字母大写)
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = Array.from(new Map(arr.map(item => [item, item])).values());
console.log(uniqueArr); // 输出: [1, 2, 3, 4, 5]

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值