javascript在数组中设置属性

javascript set property in array

本文关键字:设置 属性 数组 javascript      更新时间:2024-03-10

我想设置数组中项的属性(p1)。例如,array[1].p1="David"。但是发生了一个错误。下面是代码,有人能给我一个提示吗?非常感谢。

    var array1=new Array();         
        array1[0].p1="MARY";
        array1[1].p1="JHON";
        for (index = 0; index < array1.length; ++index) {
            alert(array1[index].p1);            
        }       

我试过array1.push({p1:"MARY"}),它有效!但它不能通过"特定"索引来设置值。

在第一个例子中,您要做的是向数组的第一个元素槽中不存在的对象添加一个属性。这就是出现错误的原因。

这就是为什么你的第二个例子有效。对象CCD_ 1本身被推入第一位置。正如Jon在评论中所说,这也可以使用array1[0] = {p1: "MARY"}来完成。

(在您的示例中,请确保var您的循环变量):

var array1 = new Array();
array1[0] = {p1: 'MARY'};
array1[1] = {p1: "JHON"};
for (var index = 0; index < array1.length; ++index) {
  console.log(array1[index].p1); // MARY, JHON
}

Fiddle

数组应声明为对象

例如。a[0]={"p1":"Mary"}

默认情况下,该数组填充了空对象{},但这不是真的。在array1[0].properties之前,必须放置对象(hashmap):array1[0] = {}

myObject["123"] = { "C": 123, "D": 456 }; 

不向对象(关联数组)添加更多元素,而是替换它们;要添加元素,您必须编写:

myObject["123"].C =123;
myObject["123"].D = 456;

至于#2和#3,Javascript对象不保证按照添加它们的顺序返回属性;为此,您必须使用数组,然后在根据不同数据结构的限制调整数据后,您可以获得第一个元素:

myArray.shift()