返回

Object与Array上的属性和方法全面剖析

前端

Object和Array的异同

Object和Array都是JavaScript中内置的两种数据类型,它们都能够存储数据,但也有着一些区别。

  • Object :Object是一种键值对的数据结构,它可以通过属性名来访问其值。Object可以存储任意类型的数据,包括其他Object、Array甚至函数。
  • Array :Array是一种有序的数据结构,它通过索引来访问其元素。Array只能存储简单数据类型,如字符串、数字和布尔值。

相同点

  • forEach()方法 :forEach()方法用于遍历数组或对象中的每个元素,并对每个元素执行一个指定的函数。
  • map()方法 :map()方法用于遍历数组或对象中的每个元素,并对每个元素执行一个指定的函数,并返回一个包含所有结果的新数组或对象。

不同点

  • forEach()方法不会修改原数组或对象,而map()方法会返回一个新的数组或对象。
  • forEach()方法不支持返回值,而map()方法支持返回值。

Object.assign()方法

Object.assign()方法用于将一个或多个目标对象的值合并到源对象上,如果出现冲突,保留目标对象的值。

语法:

Object.assign(target, ...sources)
  • target :目标对象,将其他对象的值合并到该对象上。
  • sources :要合并到目标对象上的一个或多个源对象。

示例:

const target = {
  name: 'John Doe',
  age: 30
};

const source1 = {
  city: 'New York',
  country: 'USA'
};

const source2 = {
  job: 'Software Engineer',
  company: 'Google'
};

Object.assign(target, source1, source2);

console.log(target);

输出:

{
  name: 'John Doe',
  age: 30,
  city: 'New York',
  country: 'USA',
  job: 'Software Engineer',
  company: 'Google'
}

Object.is()方法

Object.is()方法用于判断两个值是否相同。如果下列任何一项成立,则两个值相同:

  • 两个值都是NaN。
  • 两个值都是相同类型的基本值,并且值相同。
  • 两个值都是相同类型的对象,并且它们的属性值完全相同。

语法:

Object.is(value1, value2)
  • value1 :要比较的第一个值。
  • value2 :要比较的第二个值。

示例:

console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(1, 1)); // true
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is(true, true)); // true
console.log(Object.is(false, false)); // true

const obj1 = {
  name: 'John Doe',
  age: 30
};

const obj2 = {
  name: 'John Doe',
  age: 30
};

console.log(Object.is(obj1, obj2)); // false

输出:

true
true
true
true
true
false

总结

Object和Array是JavaScript中两种常用的数据类型,它们都有着各自的属性和方法。Object.assign()方法用于将一个或多个目标对象的值合并到源对象上,如果出现冲突,保留目标对象的值。Object.is()方法用于判断两个值是否相同。