简体   繁体   中英

Javascript array undefined and how to display in calendar

I'm writing an array but cannot the values. memberData[0] always gets undefined. How to get correct values (1,2)?

After getting the correct values, these need to use for loop to display in calendar. I don't know how to display in a for loop way like the picture. Please help!

Example

My code below:

         var memberList = {"member":
            {
                "1":"1,2",
                "2":"1,2",
                "3":"1,2",
                "4":"1,2",
                "5":"1,2",
                "6":"1,2",
                "7":"1,2",
                "8":"1,2",
                "9":"1,2",
                "10":"1,2",
                "11":"1,2",
                "12":"1,2",
                "13":"1,2",
                "14":"1,2",
                "15":"1,2",
                "16":"1,2",
                "17":"1,2",
                "18":"1,2",
                "19":"1,2",
                "20":"1,2",
                "21":"1,2",
                "22":"1,2",
                "23":"1,2",
                "24":"1,2",
                "25":"1,2",
                "26":"1,2",
                "27":"1,2",
                "28":"1,2",
                "29":"1,2",
                "30":"1,2"
            }
        };
        var memberData = memberList["member"];
        var res = memberData[0].split(",");
        var am = 'AM' + '-' + res[0];   
        var pm = 'PM' + '-' + res[1];

Here is a for loop which you wanted

  for(i=0;i<Object.keys(memberList.member).length;i++)
    {

        var num = Object.keys(memberList.member)[i];

        var memberData = memberList["member"][num];

        //alert(memberData);
        var res = memberData.split(",");

        alert("AM "+res[0]+" & PM "+res[1]);
    }

member of memberList is not an array, it's an object. You need to change member to be an array.

var memberList = {member: [1, 2, 3, ...]} 

Basically, you are accessing object key with an array index. To access object value you need to use the corresponding key

Demo code to implement your use case is as follows:-

var memberData = memberList["member"];
var keys = Object.keys(memberData);

for ( var key in keys ) {
    var res = memberData[key].split(",");
    var am = 'AM' + '-' + res[0];   
    var pm = 'PM' + '-' + res[1];
}

This code will access each value inside object memberData.

It looks like, you have an object with keys, based on one whereas arrays are based on zero. For the access without changing the structure just add one to the key and do the access you want.

But I suggest to use a different data structure like arrays or try to indicate right, starting with one.

 var memberList = { "member": { "1": "1,2", "2": "1,2", "3": "1,2", "4": "1,2", "5": "1,2", "6": "1,2", "7": "1,2", "8": "1,2", "9": "1,2", "10": "1,2", "11": "1,2", "12": "1,2", "13": "1,2", "14": "1,2", "15": "1,2", "16": "1,2", "17": "1,2", "18": "1,2", "19": "1,2", "20": "1,2", "21": "1,2", "22": "1,2", "23": "1,2", "24": "1,2", "25": "1,2", "26": "1,2", "27": "1,2", "28": "1,2", "29": "1,2", "30": "1,2" } }, memberData = memberList["member"], res = memberData[0 + 1].split(","), // ^^^ add one for the index starting with one am = 'AM' + '-' + res[0], pm = 'PM' + '-' + res[1]; console.log(am + ' ' + pm); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM