将键值对中的一个值设置为数组中的另一个键?

时间:2017-11-24 04:53:02

标签: javascript arrays key-value

我有一个数组:

var array1 = [{ make: "John Deere", model: "4030", time:"-KzbzyNy-nh1E3wQY7uz", uid:0, year:"1952" }]

我想获取“时间”值并将其设置为“uid”值。所以,它会变成:

var array1 = [{ make: "John Deere", model: "4030", time:"-KzbzyNy-nh1E3wQY7uz", uid:"-KzbzyNy-nh1E3wQY7uz", year:"1952" }]

如果重复“-KzbzyNy-nh1E3wQY7uz”,那就完全没问了,因为它被设置为两个不同的键。

我该怎么做?我是javascript的新手。很抱歉,如果这是一个基本的问题。

4 个答案:

答案 0 :(得分:0)

尝试这个



var array1 = [{
  make: "John Deere",
  model: "4030",
  time: "-KzbzyNy-nh1E3wQY7uz",
  uid: 0,
  year: "1952"
}];

//set it manually using key of array
array1[0]['uid'] = array1[0]['time'];

console.log(array1);




答案 1 :(得分:0)

循环数组并通过将time值传递给属性uid

为每个对象做一个简单的赋值

var array1 = [{
  make: "John Deere",
  model: "4030",
  time: "-KzbzyNy-nh1E3wQY7uz",
  uid: 0,
  year: "1952"
}];
// o is current array element which is an object
array1.forEach(o => o.uid = o.time);

console.log(array1);

答案 2 :(得分:0)

此解决方案适用于任何长度的数组。其他一些解决方案仅在数组长度为1且您要修改的对象始终位于数组中时才有效。

此解决方案适用于任何长度的数组(类似对象)。

for(var i = 0; i < array1.length; i++) {
   var current = array1[i];
   current.uid = current.time;
}

答案 3 :(得分:0)

我希望我能选择更多的答案。所有这些工作,我不知道它就像为下一个分配一个值一样容易。这是我的最终代码:

 const array2 = [];

 array1[0].uid = array1[0].time;

 const len = array1.length;

 for (let i = 0; i < len4; i++) {
 array2.push(array1);
 }

   console.log(array2);

我可能根本不需要array2,但只是添加了其他步骤。