重命名json文件的密钥

时间:2018-01-15 12:31:28

标签: javascript arrays json

我可以更改key的值,但是如何通过创建函数

来重命名json键
    button.addEventListener("click", function(){
        var i = 0;
        i++;
        var name = "Jason " + i;
        var surname = "Carl " + i;
        writeJson(i, name, surname);
    });

    function writeJson(id, name, surname){
        var array = {
        id: {
            "name": name,
            "surname": surname
            }
        };
    }
数组ID中的

没有改变,我没有增加

2 个答案:

答案 0 :(得分:2)

在事件侦听器回调之外声明您的i变量。

现在的样子,每次点击按钮都会重置它。

var i = 0; // this is in the parent scope

button.addEventListener("click", function(){
    i++;
    var name = "Jason " + i;
    var surname = "Carl " + i;
    writeJson(i, name, surname);
});

function writeJson(id, name, surname){
    var array = {
    id: {
        "name": name,
        "surname": surname
        }
    };
}



var i = 0; // this is in the parent scope

button.addEventListener("click", function(){
    i++;
    console.log('i: ' + i)
});

<button id="button">increment i</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先:

  • 您正在调用array一个object类型的变量。
  • 您使用id作为键和函数的参数,由于(1)我认为您是新程序员,因此会引起混淆。

如果你的意思是将id作为对象的一个​​键叫做array:

&#13;
&#13;
    var i = 0;
    var button = document.getElementById('test');
    button.addEventListener("click", function(){
        i++;
        var name = "Jason " + i;
        var surname = "Carl " + i;
        writeJson(i, name, surname);
    });

    function writeJson(id, name, surname){
        var array = {
          [id]: {
            "name": name,
            "surname": surname
            }
        };
        alert(JSON.stringify(array, null, 2));
    }
    
&#13;
<button type="button" id="test">Create new</button>
&#13;
&#13;
&#13;