首页 > 解决方案 > 将对象推入数组会产生未定义的错误

问题描述

我正在研究一个商店定位器,需要创建一个对象数组(称为从业者数据),每个对象都是一个商店。它可以工作,但是我推入数组的任何对象都不起作用。

代码如下所示:

let practitionersData = [];
practitionersData.push({
    "name": "Chipotle Minneapolis",
    "address": "3045 Excelsior Blvd",
    "address2": "",
    "city": "Minneapolis",
    "state": "MN",
    "postal": "55416",
    "phone": "612-922-6662",
    "web": "http://www.chipotle.com",
    "hours1": "Mon-Sun 11am-10pm",
    "hours2": "",
    "hours3": "",
    "featured": "",
    "features": "",
    "lat": "44.947464",
    "lng": "-93.320826",                
    "date": "10/17/18",
    "formattedaddress":"3040 Excelsior Blvd, Minneapolis MN 55416"
    }); 

let temperedOBJ = {
        "name": "Chipotle Minneapolis2",
        "address": "30451 Excelsior Blvd",
        "address2": "",
        "city": "Minneapolis",
        "state": "MN",
        "postal": "55416",
        "phone": "612-922-6662",
        "web": "http://www.chipotle.com",
        "hours1": "Mon-Sun 11am-10pm",
        "hours2": "",
        "hours3": "",
        "featured": "",
        "features": "",
        "lat": "44.947464",
        "lng": "-93.320826",                
        "date": "10/17/18",
        "formattedaddress":"3040 Excelsior Blvd, Minneapolis MN 55416"
}

practitionersData.push(temperedOBJ);

console.log('==== start practitionersData =====')
console.log(practitionersData);
console.log(typeof practitionersData);            
console.log('==== start practitionersData 0 =====')
console.log(practitionersData[0]);     
console.log(typeof practitionersData[0]);            
console.log('==== start practitionersData 1 =====')
console.log(practitionersData[1]);                                                    
console.log(typeof practitionersData[1]); 

从业者数据 [0] 的值和类型看起来不错,并显示了一个对象。从业者数据 [1] 的值和类型未显示在控制台中,并显示未定义。如果我查看完整的数组,我会看到每个索引处的对象。

为什么当推入一个对象时它仍然是一个对象,但如果我推入一个代表一个对象的变量,它变得未定义?

标签: javascript

解决方案


您只是将一个对象推送到数组中。practitionersData.push(temperedOBJ)在使用 console.log() 之前尝试添加


推荐阅读