具有另一个键的对象数组,另一个对象中的值

时间:2011-07-31 22:44:26

标签: javascript

我有一种情况,我有对象数组......

array[0] = {key:value,key1:value}
array[1] = {key:value,key1:value}
array[2] = {key:value,key1:value}
array[3] = {key:value,key1:value}

现在我想将array [0]与另一个对象{key,value}数组关联,让我们把newArray[0] 's {key,value}

我的array[0]有自己的key,value集,并且还指向另一个对象的键值,它可以更改。

更新

array [0]有其原始键,值以及另一个键,来自不同对象的值...所以我的array[0] object has two key,value...

4 个答案:

答案 0 :(得分:1)

您只需添加第二个键即可。

array[0].key2 = object2

如果我已正确理解你的问题。

答案 1 :(得分:1)

你的意思是:

array[0] = [array[0], newArray[0]]

这将生成一个对象数组。旧的和新的。

很难理解你想要做什么。

答案 2 :(得分:1)

在一个对象中,“key”只是一个命名属性,它不是对任何东西的引用。您无法更改属性的名称,您可以做的就是创建一个具有不同名称的属性,将第一个属性的值分配给第二个属性,然后删除第一个属性,例如

function reNameProperty(obj, prop0, prop1) {
  obj[prop1] = obj[prop0];
  delete obj.prop0;
}

但似乎没有太多意义。我认为你想做的是:

var obj0 = {p: 'value};
var arr = [obj0, obj0];

因此arr [0]和arr [1]都引用相同的对象。如果有人改变:

var arr[0] = {q: 'different value');

然后某种方式arr [1]也将引用这个新对象。

如果您创建一个函数来设置 arr [0] 的值,并且它以某种方式知道哪些其他数组成员应该引用同一个对象,则只能这样做。

答案 3 :(得分:1)

你想要这样的东西吗?

var arrayA=[];
arrayA[0] = {key:1,keyB:"key3"}

var arrayB=[];
arrayB[0] = {key3:"Hello"}

arrayB[0][arrayA[0]["keyB"]]="Bye";
alert(arrayB[0].key3);