是否可以命名json数组的位置?

时间:2018-02-07 23:13:20

标签: javascript arrays json ajax local-storage

按照我的json在存储对象中的示例: (对不起语言)enter image description here

如何为索引“0:”和“1:”添加名称? 示例:将“session_0”替换为“0”

下面我将在一个更抽象的例子中展示如何在代码中创建这个数组

var objectFinal = {"student":[],"sessions":[]};
var mySession = {"answers":[]}
objectFinal.sessions.push(mySession);
var obj = JSON.stringify(objectFinal);
localStorage.setItem("",obj);

我希望很清楚,抱歉我的英语不好或任何无组织。

3 个答案:

答案 0 :(得分:0)

您可以使用[]

命名密钥
var objectFinal = {"student":[],"sessions":[]};
var mySession = {"answers":[]}
objectFinal.sessions['session_0'] = mySession; // <- here
var obj = JSON.stringify(objectFinal);
localStorage.setItem("",obj);

答案 1 :(得分:0)

您必须创建一个具有自定义键的对象。您可以在objectFinal.sessions上使用Array.prototype.reduce,从空对象{}开始:

var result = objectFinal.sessions.reduce(function(acc, current, i) {
    acc['session_' + i] = current;
    return acc;
}, {});

答案 2 :(得分:0)

使用forEach(item, index)功能构建所需的结构。

请查看此代码段

var data = [{
    'datahora': '7758585',
    'nomeaplicador': 'Ele',
    'tempo': 000
  },
  {
    'datahora': '989887',
    'nomeaplicador': 'Enr',
    'tempo': 111
  }

];

data.forEach((e, index) => { 
    data[index] = { [`session_${index}`]: e };
});

console.log(data)