我用:
创建了一个数组var msg = new Array();
然后,我有一个向这个数组添加值的函数,这个函数是:
function add(time, user, text){
var message = [time, user, text];
if (msg.length >= 50)
msg.shift();
msg.push(message);
}
如您所见,如果数组包含50个或更多元素,我会使用.shift()
删除第一个元素。
然后我添加一个数组作为元素。
好的,代码完美无缺,但现在我必须循环msg
数组来创建一个JSON对象。
JSON对象应具有以下格式:
var obj = [
{'time' : time, 'user' : user, 'text' : text},
{'time' : time, 'user' : user, 'text' : text},
{'time' : time, 'user' : user, 'text' : text}
]
我的意思是......我必须循环msg数组,然后将所有值存储在JSON对象中。 我不知道如何在json obj中“连接”数组元素。
你能帮帮我吗?
非常感谢你!
答案 0 :(得分:9)
我将从你的添加功能中给你一个例子:
function add(time, user, text){
// this line is all I changed
var message = {'time' : time, 'user' : user, 'text' : text};
if (msg.length >= 50)
msg.shift();
msg.push(message);
}
正如您所看到的,消息变量不再是数组,而是它想要的对象。
通过这个,你应该能够找到如何创建一个新数组并添加你想要的值。
答案 1 :(得分:1)
试试这个:
var len = msg.length;
var obj = [];
for (var i = 0; i < len; i++) {
var item = {
'time': msg[i][0],
'user': msg[i][1],
'text': msg[i][2]
}
obj.push(item);
}
答案 2 :(得分:0)
我想你想要这样的东西:
function add(time, user, text){
var message = {time:time, user:user, text:text};
if (msg.length >= 50)
msg.shift();
msg.push(message);
}