gpt4 book ai didi

javascript - 对象长度为0,但其中有几项

转载 作者:数据小太阳 更新时间:2023-10-29 06:06:50 25 4
gpt4 key购买 nike

我正在创建一个对象 (dataObj),它在 $getJSON 中返回其中的多个项目:

var cities = ['london', 'paris', 'munich', 'geneva', 'prague', 'vienna', 'barcelona', 'istanbul'],
totalCities = cities.length,
i = 0,
$container = $('#cities'),
htmlFragment,
data,
obj,
dataObj = {
cities:[]
};

function appendData() {

var city = cities[i],
locationQuery = escape("select item from weather.forecast where woeid in (select woeid from geo.places where text='" + city + "') and u='c'"),
locationUrl = "https://query.yahooapis.com/v1/public/yql?q=" + locationQuery + "&format=json&callback=?";

if ( i === cities.length ) { return };

$.getJSON( locationUrl, function( data ) {
var condition = data.query.results.channel[0].item.condition.text,
temperature = data.query.results.channel[0].item.condition.temp;

obj = {
city: city,
condition: condition,
temperature: temperature
};

dataObj.cities.push(obj);

// $container.append(html);

appendData();

});

i = i + 1;
}

appendData();

var source = $("#some-template").html();
var template = Handlebars.compile(source);

var dataObjExample = { cities: [
{city: "london", condition: "Cloudy", temperature: "8" },
{city: "paris", condition: "sunny", temperature: "5" },
{city: "munich", condition: "Rainy", temperature: "3" }
]};

console.log(dataObj);
console.log('dataObj:' + dataObj.cities.length);

console.log(dataObjExample);
console.log('dataObjExample:' + dataObjExample.cities.length);

$("#content-placeholder").html(template( dataObj ));

当我 console.log dataObj.cities 时,它看起来一切正常并且有很多项目,但是长度为 0,我确信这是我的问题的根源。我一直在摆弄并寻找一些时间来寻找解决方案,但无济于事。聪明人有什么想法吗?

更新

抱歉,昨晚在我神志不清的状态下我想写:dataObj.cities。

我已经向 JS 添加了 2 个 console.logs。一种是真实数据,dataObj.cities.length的长度显示为0。另一种是手动创建对象,dataObjExample.cities.length正确显示为3。

请在此 url 查看控制台:https://dl.dropboxusercontent.com/u/36374911/weather%20app/index.html

提前致谢!

最佳答案

像您的“dataObj”这样的普通对象没有.length 属性(除非您创建/维护一个)。这是一个数组,它只适用于数字索引的属性。

现在,dataObj.cities.length 将为您提供该数组的长度。

关于javascript - 对象长度为0,但其中有几项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com