在json对象数组上添加唯一生成的标识符

时间:2018-10-22 18:47:14

标签: javascript arrays json ecmascript-5

如何在JSON下面添加uniqueId字段。该数组具有大量数据,需要在现有数组上动态唯一标识符。

[{"title":"Accompanying"},{"title":"Chamber music"},{"title":"Church 

音乐“} ......]

因此,它应该如下所示:

[{"title":"Accompanying", "uniqueId": 1},{"title":"Chamber music", "uniqueId": 2}..]

uniqueId-类型,数字或向导。

注意:由于不知道“标题”或其他字段,因此无法按名称映射字段。

3 个答案:

答案 0 :(得分:3)

我会进行简单的for循环

let myArray = [{"title":"Accompanying"},{"title":"Chamber music"},{"title":"Church music"}];
let i = 0, ln = myArray.length;
for (i;i<ln;i++){
  myArray[i].uniqueId = i+1;
}

console.log(myArray);

答案 1 :(得分:1)

如果这是一次性的事情,则可以执行以下操作:

i

如果您想改用guid生成器(建议这样做),只需将const newArray = oldArray.map((x) => ({ ...x, uniqueId: generateGuid() })); 替换为用于生成GUID的内容,并确保您每次添加到集合中都可以为该生成新的GUID数据。

const yourDynamicObjects = [
    {
        title: 'A title',
        author: 'A. Author'
    },
    {
        foo: 'bar',
    },
    {
        quotient: 2,
        irrational: Math.sqrt(2)
    }
];

const updatedData = yourDynamicObjects.map((x, i) => ({ ...x, uniqueId: i, }));

console.log(updatedData);

map

答案 2 :(得分:0)

您可以使用index并在其回调函数中使用Object.keys参数创建uniqueId

  

item.title实际上并不称为其动态数组,因此,可以   没有使用特定的字段名称映射

在这种情况下,使用let k = [{ "title": "Accompanying" }, { "title": "Chamber music" }, { "title": "Church" }] let getArrayKey = Object.keys(k[0]); let n = k.map(function(item, index) { let obj = {}; getArrayKey.forEach(function(elem) { obj[elem] = item[elem]; }) obj.uniqueId = index + 1 return obj; }); console.log(n)获取所有键的数组。然后循环遍历并将密钥添加到新对象

let k = [{
  "title": "Accompanying"
}, {
  "title": "Chamber music"
}, {
  "title": "Church"
}]

let n = k.map(function(item, index) {
  return Object.assign({}, { ...item,
    uniqueId: index + 1
  })

});

console.log(n)

还可以使用传播算子

public String funciones(String arguments){
    //Many operations . . . 
    animalInterface.executeSol(integer id, String msg); <-- void 
  return soluciones;
}