对数组和对象的一些操作

数组和对象是 JavaScript 中最常用的数据结构之一,以下是一些常见的对数组和对象进行的操作。

数组

创建数组

创建一个空数组:

复制代码
const arr = [];

创建包含特定元素的数组:

复制代码
const arr = [1, 2, 3];

创建指定长度的数组:

复制代码
const arr = new Array(3); // 创建长度为 3 的数组,元素都是 undefined

操作数组元素

获取数组元素:

复制代码
const arr = [1, 2, 3]; 
console.log(arr[0]); // 输出 1

修改数组元素:

复制代码
const arr = [1, 2, 3]; 
arr[0] = 4; 
console.log(arr); // 输出 [4, 2, 3]

添加元素到数组末尾:

复制代码
const arr = [1, 2, 3]; 
arr.push(4); 
console.log(arr); // 输出 [1, 2, 3, 4]

删除数组末尾的元素:

复制代码
const arr = [1, 2, 3]; 
arr.pop(); 
console.log(arr); // 输出 [1, 2]

添加元素到数组开头:

复制代码
const arr = [1, 2, 3]; 
arr.unshift(0); 
console.log(arr); // 输出 [0, 1, 2, 3]

删除数组开头的元素:

复制代码
const arr = [1, 2, 3]; 
arr.shift(); 
console.log(arr); // 输出 [2, 3]

在指定位置插入元素:

复制代码
const arr = [1, 2, 3]; 
arr.splice(1, 0, 4); 
// 在索引为 1 的位置插入元素 4 console.log(arr); 
// 输出 [1, 4, 2, 3]

从指定位置删除元素:

复制代码
const arr = [1, 2, 3]; 
arr.splice(1, 1); 
// 从索引为 1 的位置删除一个元素 console.log(arr); 
// 输出 [1, 3]

迭代数组

遍历数组并执行回调函数:

复制代码
const arr = [1, 2, 3]; 
arr.forEach((val, index) => { 
    console.log(`${index}: ${val}`); 
});

// 输出: // 0: 1 // 1: 2 // 2: 3

使用 map 方法对数组进行转换:

复制代码
const arr = [1, 2, 3]; 
const doubledArr = arr.map(val => val * 2); 
console.log(doubledArr); // 输出 [2, 4, 6]

对数组元素进行过滤:

复制代码
const arr = [1, 2, 3, 4, 5]; 
const filteredArr = arr.filter(val => val % 2 === 0); 
console.log(filteredArr); // 输出 [2, 4]

使用 reduce 方法对数组元素进行累加:

复制代码
const arr = [1, 2, 3]; 
const sum = arr.reduce((acc, val) => acc + val, 0); 
console.log(sum); // 输出 6

对象

创建对象

创建一个空对象:

复制代码
const obj = {};

创建一个包含属性的对象:

复制代码
const obj = { name: 'Bob', age: 20 };

使用 Object.create 方法创建一个继承自另一个对象的新对象:

复制代码
const parentObj = { name: 'Alice' }; 
const childObj = Object.create(parentObj); 
childObj.age = 10; 
console.log(childObj.name); // 输出 'Alice' 
console.log(childObj.age); // 输出 10

操作对象属性

获取对象属性:

复制代码
const obj = { name: 'Bob', age: 20 }; 
console.log(obj.name); // 输出 'Bob'

修改对象属性:

复制代码
const obj = { name: 'Bob', age: 20 }; 
obj.name = 'Alice'; 
console.log(obj); // 输出 {name: 'Alice', age: 20}

添加新属性到对象:

复制代码
const obj = { name: 'Bob', age: 20 }; 
obj.gender = 'male'; 
console.log(obj); // 输出 {name: 'Bob', age: 20, gender: 'male'}

删除对象属性:

复制代码
const obj = { name: 'Bob', age: 20 }; delete obj.age; 
console.log(obj); // 输出 {name: 'Bob'}

迭代对象属性

遍历对象属性并执行回调函数:

复制代码
const obj = { name: 'Bob', age: 20 }; 
Object.entries(obj).forEach(([key, value]) => { 
    console.log(`${key}: ${value}`); 
}); 
// 输出: 
// name: Bob 
// age: 20

获取对象属性名列表:

复制代码
const obj = { name: 'Bob', age: 20 }; 
const keys = Object.keys(obj); 
console.log(keys); // 输出 ['name', 'age']

获取对象属性值列表:

复制代码
const obj = { name: 'Bob', age: 20 }; 
const values = Object.values(obj); 
console.log(values); // 输出 ['Bob', 20]
相关推荐
旧曲重听11 分钟前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
Kapaseker2 分钟前
我找到了最适合程序员的 PPT 工具 — Slidev
前端
dadaobusi6 分钟前
RISC-V 虚拟化:虚拟机TLB处理
java·开发语言
夏幻灵7 分钟前
深度解析 JavaScript 异步编程:从回调地狱到 Promise 的重构
开发语言·javascript·重构
鱼子星_10 分钟前
C++从零开始系列篇(二):C++入门——函数重载,引用,inline与nullptr
开发语言·c++·笔记
程序猿乐锅17 分钟前
【 苍穹外卖day03 | 菜品管理 】
java·开发语言·数据库·mysql
派大鑫wink17 分钟前
Java 高级编程技巧(生产级实用,覆盖性能、并发、设计、JVM、语法、避坑)
开发语言·python
JSON_L17 分钟前
PHP实现大文件分片上传
开发语言·php
雾削木18 分钟前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件
凤山老林20 分钟前
JDK 11 升级至 JDK 17
java·开发语言·jdk17·jdk升级·jdk11