我可以更改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中的没有改变,我没有增加
答案 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;
答案 1 :(得分:0)
首先:
array
一个object
类型的变量。id
作为键和函数的参数,由于(1)我认为您是新程序员,因此会引起混淆。如果你的意思是将id作为对象的一个键叫做array:
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;