📌  相关文章
📜  数组具有属性 js 的对象 - Javascript (1)

📅  最后修改于: 2023-12-03 14:55:00.195000             🧑  作者: Mango

数组具有属性 js 的对象 - Javascript

在Javascript中,数组被视为具有属性的对象。这意味着数组可以包含除索引值之外的其他属性,就像普通的Javascript对象一样。

基本概念

数组在Javascript中是一种特殊类型的对象。数组对象具有数值索引,而且它们的属性值可以是任何Javascript数据类型,包括函数、对象和其他数组。

let myArray = [1, 'hello', {name: 'John'}, [4, 5, 6]];

在上面的代码中,我们创建了一个包含不同类型数据的数组。使用数组索引,我们可以访问数组中的元素:

console.log(myArray[0]); // 输出: 1
console.log(myArray[1]); // 输出: "hello"
console.log(myArray[2]); // 输出: {name: "John"}
console.log(myArray[3]); // 输出: [4, 5, 6]
console.log(myArray[3][0]); // 输出: 4

如您所见,我们可以使用数组索引获取数组中的元素,这包括嵌套的数组。

添加属性

因为数组是Javascript对象,所以可以在数组中添加属性。例如:

let myArray = [1, 2, 3];
myArray.myProperty = 'Hello';

console.log(myArray); // 输出: [1, 2, 3, myProperty: "Hello"]

在上面的代码中,我们在数组myArray上添加了一个名为myProperty的属性。请注意,在输出数组时,我们可以看到这个新属性。但是,当我们使用length属性时,新添加的属性不会被计算:

console.log(myArray.length); // 输出: 3
for..in循环

因为数组是Javascript对象,所以我们可以使用for..in循环来遍历它们。然而,由于数组索引是数值,我们必须小心地编写循环,以确保只遍历数组元素而不是属性。例如:

let myArray = [1, 2, 3];
myArray.myProperty = 'Hello';

for(let index in myArray){
  console.log(myArray[index]);
}

// 输出: 1
// 输出: 2
// 输出: 3
// 输出: "Hello"

在上面的代码中,我们的循环输出了数组的所有元素以及它的一个属性。为了避免这种情况,我们可以使用hasOwnProperty()方法检查属性是否是自己的属性。

let myArray = [1, 2, 3];
myArray.myProperty = 'Hello';

for(let index in myArray){
  if(myArray.hasOwnProperty(index)){
    console.log(myArray[index]);
  }
}

// 输出: 1
// 输出: 2
// 输出: 3
总结

数组是Javascript中的一种特殊类型的对象,它可以包含除了索引之外的其他属性。我们可以使用数组索引访问数组元素,并使用for..in循环遍历数组,但我们必须注意小心处理数组属性。