7

I have created an array with:

var msg = new Array();

then, I have a function that add values to this array, this function is:

function add(time, user, text){
 var message = [time, user, text];
 if (msg.length >= 50)
 msg.shift();
 msg.push(message); 
}

As you can see, if the array has 50 or more elements I remove the first with .shift(). Then I add an array as element.

Ok, the code works perfectly, but now I have to loop the msg array to create a JSON obj.

The JSON object should has this format:

var obj = [
{'time' : time, 'user' : user, 'text' : text},
{'time' : time, 'user' : user, 'text' : text},
{'time' : time, 'user' : user, 'text' : text}
]

I mean...i have to loop msg array and then store all the values inside the JSON object. I do not know how to "concatenate" the element of the array inside json obj.

Could you help me?

Thank you very much in advance!

asked Jun 11, 2010 at 8:14
1
  • 2
    It's generally better to initialize array like this var msg = []; instead of var msg = new Array(); Commented Jun 11, 2010 at 8:21

3 Answers 3

10

I'll give you an example from your add function:

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); 
}

As you can see the message variable is no longer an array but it's the Object you want it to be.

From this you should be able to work out how to create a new array and add the values you want to it.

answered Jun 11, 2010 at 8:19
1
  • ok but, after it msg is an array, not a JSON object...how to convert? Commented Jun 11, 2010 at 9:26
1

Try this:

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);
}
answered Jun 11, 2010 at 8:20
0

I think you want something like this:

function add(time, user, text){
 var message = {time:time, user:user, text:text};
 if (msg.length >= 50)
 msg.shift();
 msg.push(message); 
}
answered Jun 11, 2010 at 8:22

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.