数组和对象是 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]