最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - How to add data to a 2 dimensional array in javascript - Stack Overflow

programmeradmin1浏览0评论

I am trying to add values into an array but for some reason it is not working. I am new to JavaScript.

Here is my code:

eventsArray = new Array();

$.each(xmlJsonObj.feed.entry, function(index, value){
    eventsArray[index] = new Array('title' = value.title, 'date' = value.date[1]);
});

So basically I am pulling out some values from the json object and want to save them as key-value pairs in an array (multidimensional as each event has several values).

This array will later be sorted by date.

I am currently getting the following error:

ReferenceError: Left side of assignment is not a reference.

I am new to JavaScript and don't really understand whats wrong. Tried to look at some examples but still can't see a good example of creating two dimensional arrays with JavaScript (or objects, as everything in JS is an object) in a loop like this.

I would be very thankfull for any help or tips.

I am trying to add values into an array but for some reason it is not working. I am new to JavaScript.

Here is my code:

eventsArray = new Array();

$.each(xmlJsonObj.feed.entry, function(index, value){
    eventsArray[index] = new Array('title' = value.title, 'date' = value.date[1]);
});

So basically I am pulling out some values from the json object and want to save them as key-value pairs in an array (multidimensional as each event has several values).

This array will later be sorted by date.

I am currently getting the following error:

ReferenceError: Left side of assignment is not a reference.

I am new to JavaScript and don't really understand whats wrong. Tried to look at some examples but still can't see a good example of creating two dimensional arrays with JavaScript (or objects, as everything in JS is an object) in a loop like this.

I would be very thankfull for any help or tips.

Share edited Jan 30, 2014 at 12:51 user2509223 asked Jan 30, 2014 at 12:47 Saint DaveSaint Dave 5671 gold badge10 silver badges27 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 5

The cause of the error message is this:

'title' = value.title

That would mean that you are trying to assign a value to a literal string. The rest of the code (except from the other one just like it) is actually valid syntax, even if that is not what you are trying to do, so that's why you get the error message on that part of the code.

To have a collection of key-value pairs you would use an object instead of an array, and you can create it like this:

eventsArray[index] = { title: value.title, date: value.date[1] };

May be simplest one,

var eventsArray = new Array();

$.each(xmlJsonObj.feed.entry, function (index, value) {
    eventsArray[index] =  { 'title': value.title, 'date': value.date[1] };
});

It works if you change your code to:

var eventsArray = new Array();

$.each(xmlJsonObj.feed.entry, function(index, value){
    eventsArray.push({ title : value.title, date: value.date[1] });
});

You should use objects for this:

eventsArray[index] = {};
eventsArray[index].title = value.title;
eventsArray[index].date = value.date[1];

The problem you have is that you try to assign value.title value to String. Arrays in JS didn't work in that way. Also Arrays didn't support String keys, this is why you may need Object.

If your date property is TIMESTAMP for example you can sort it like:

eventsArray.sort( function( a, b ) {
    return a.date - b.date;
}); 
发布评论

评论列表(0)

  1. 暂无评论