总结 : 常见的数组方法和对象方法

69 阅读3分钟

数组方法

  1. push() 将一个或多个元素添加到数组的末尾,并返回修改后的数组的长度。

    const fruits = ['apple', 'banana'];
    fruits.push('cherry');
    
  2. pop() 移除数组的最后一个元素,并返回被移除的元素。

    const fruits = ['apple', 'banana', 'cherry'];
    const removedFruit = fruits.pop();
    
  3. unshift() 将一个或多个元素添加到数组的开头,并返回修改后的数组的长度。

    const fruits = ['banana', 'cherry'];
    fruits.unshift('apple');
    
  4. shift() 移除数组的第一个元素,并返回被移除的元素。

    const removedFruit = fruits.shift();
    
  5. concat() 将两个或多个数组合并为一个新数组,而不修改原始数组。

    const arr1 = [1, 2];
    const arr2 = [3, 4];
    const combined = arr1.concat(arr2);
    
  6. slice() 返回一个新数组,包含从原数组中指定的开始索引到结束索引的元素,而不修改原始数组。

    const fruits = ['apple', 'banana', 'cherry', 'date'];
    const selectedFruits = fruits.slice(1, 3); // 返回 ['banana', 'cherry']
    
  7. splice() 从数组中添加、删除或替换元素,可以修改原始数组。

    const fruits = ['apple', 'banana', 'cherry'];
    fruits.splice(1, 1, 'orange'); // 在索引 1 处删除一个元素 'banana',并插入 'orange'
    
  8. forEach() 对数组中的每个元素执行指定的函数,没有返回值。

    const fruits = ['apple', 'banana', 'cherry'];
    fruits.forEach(fruit => console.log(fruit));
    
  9. map() 创建一个新数组,其中包含原数组的每个元素按照指定的函数进行转换。

    const numbers = [1, 2, 3, 4, 5];
    const doubled = numbers.map(num => num * 2);
    
  10. filter() 创建一个新数组,其中包含满足指定条件的原数组元素。

    const numbers = [1, 2, 3, 4, 5];
    const evenNumbers = numbers.filter(num => num % 2 === 0);
    
  11. reduce() 将数组的元素合并为一个单一的值,通过指定的回调函数来累积值。

    const numbers = [1, 2, 3, 4, 5];
    const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
    
  12. sort() 对数组元素进行排序,原数组会被改变。

    const fruits = ['banana', 'cherry', 'apple'];
    fruits.sort();
    
  13. every()some() 用于检查数组中的元素是否满足指定条件,返回布尔值。

    const numbers = [1, 2, 3, 4, 5];
    const allEven = numbers.every(num => num % 2 === 0); // 是否所有元素都为偶数
    const someEven = numbers.some(num => num % 2 === 0); // 是否存在至少一个偶数
    

对象方法

  1. Object.keys(obj) 返回一个数组,包含对象 obj 的所有可枚举属性的名称。

    const person = { name: 'Alice', age: 30, city: 'New York' };
    const keys = Object.keys(person); // 返回 ['name', 'age', 'city']
    
  2. Object.values(obj) 返回一个数组,包含对象 obj 的所有可枚举属性的值。

    const person = { name: 'Alice', age: 30, city: 'New York' };
    const values = Object.values(person); // 返回 ['Alice', 30, 'New York']
    
  3. Object.entries(obj) 返回一个包含对象 obj 所有可枚举属性的键-值对数组。

    const person = { name: 'Alice', age: 30, city: 'New York' };
    const entries = Object.entries(person); // 返回 [['name', 'Alice'], ['age', 30], ['city', 'New York']]
    
  4. Object.assign(target, source) 将一个或多个源对象的属性复制到目标对象,并返回目标对象。它用于对象的浅复制。

    const target = { a: 1, b: 2 };
    const source = { b: 3, c: 4 };
    const result = Object.assign(target, source); // 返回 { a: 1, b: 3, c: 4 }
    
  5. Object.freeze(obj) 冻结对象,防止其被修改。被冻结后的对象属性无法添加、删除或修改。

    const person = { name: 'Alice', age: 30 };
    Object.freeze(person);
    person.name = 'Bob'; // 这里不会改变 person 对象
    
  6. Object.seal(obj) 密封对象,防止其属性被删除,但允许属性值的修改。

    const person = { name: 'Alice', age: 30 };
    Object.seal(person);
    person.name = 'Bob'; // 这里允许修改属性值
    delete person.age; // 这里不允许删除属性
    
  7. Object.keys(obj).length 获取对象中可枚举属性的数量。

    const person = { name: 'Alice', age: 30, city: 'New York' };
    const numProperties = Object.keys(person).length; // 返回 3
    
  8. hasOwnProperty(prop) 检查对象是否包含指定属性,并返回布尔值。

    const person = { name: 'Alice', age: 30 };
    const hasName = person.hasOwnProperty('name'); // 返回 true
    
  9. Object.getOwnPropertyNames(obj) 返回一个数组,包含对象 obj 的所有属性名称,包括不可枚举属性。

    const person = { name: 'Alice', age: 30 };
    const propertyNames = Object.getOwnPropertyNames(person); // 返回 ['name', 'age']