js中Array和Object的区别

文章类型:Javascript

发布者:hp

发布时间:2023-05-23

Array(数组)和Object(对象)是两种不同的数据类型

一:区别

1:数据结构:

Array:有序的数据集合,使用整数作为索引来访问和操作其中的元素。

Object:无序的键值对集合,每个键(属性)都与一个对应的值相关联。

2:访问元素:

Array:通过索引(从0开始)访问和修改数组中的元素。可以使用数组的内置方法和属性来操作和处理数组。

Object:通过键(属性)访问和修改对象中的值。可以使用点操作符或方括号语法来访问对象的属性。

3:顺序性:

Array:是有序的,元素按照添加顺序排列,并且可以根据索引进行排序和重排。

Object:对象是无序的,属性之间没有特定的顺序。

4:迭代:

Array:可以使用循环结构(如for循环、forEach、map等)遍历数组的元素。

Object:可以使用for...in循环或Object.keys/Object.values/Object.entries等方法遍历对象的属性和值。

5:内置方法::

Array:数组拥有一系列内置方法(如push、pop、splice、sort等),用于在数组中添加、删除、修改元素以及对数组进行排序和变换。

Object:对象的内置方法较少,主要是一些操作对象本身的方法(如Object.keys、Object.values、Object.assign等)和原型方法

二:代码

1:Array

// Array(数组)示例
let fruits = ['apple', 'banana', 'orange'];

console.log(fruits[0]);  // 输出:'apple'
console.log(fruits.length);  // 输出:3

fruits.push('grape');  // 在数组末尾添加元素
console.log(fruits);  // 输出:['apple', 'banana', 'orange', 'grape']

fruits.forEach(fruit => {
  console.log(fruit);  // 逐个输出数组元素
});

2:Object

// Object(对象)示例
let person = {
  name: 'John',
  age: 30,
  city: 'New York'
};

console.log(person.name);  // 输出:'John'
console.log(Object.keys(person));  // 输出:['name', 'age', 'city']

person.job = 'Engineer';  // 添加新属性
console.log(person);  // 输出:{ name: 'John', age: 30, city: 'New York', job: 'Engineer' }

for (let key in person) {
  console.log(key + ': ' + person[key]);  // 遍历对象的属性和值
}

三:总结

1:Array适用于存储和处理有序的、按照索引访问的数据集合,而Object适用于存储和处理无序的、基于键值对的数据集合