【发布时间】:2015-01-04 18:52:34
【问题描述】:
我想在 JavaScript 对象字面量中推送数据。但是,无论如何也找不到。我正在尝试以下代码。
var wd = { item: [] }
wd.item = {
country: weatherData.query.results.weather.rss.channel.location.country,
state: weatherData.query.results.weather.rss.channel.location.city,
displayState: weatherData.query.results.weather.rss.channel.location.city + ', ' + weatherData.query.results.weather.rss.channel.location.country,
data: [
{
date: weatherData.query.results.weather.rss.channel.item.forecast[0].date,
day: weatherData.query.results.weather.rss.channel.item.forecast[0].day,
high: weatherData.query.results.weather.rss.channel.item.forecast[0].high,
low: weatherData.query.results.weather.rss.channel.item.forecast[0].low,
text: weatherData.query.results.weather.rss.channel.item.forecast[0].text
}
]
};
我正在尝试使用 push() 函数,但出现错误。
添加一项后,结果如下。
Object {item: Object}item: Objectcountry: "India"data: Array[1]0: Object$$hashKey: "object:254"date: "4 Jan 2015"day: "Sun"high: "84"low: "66"text: "Partly Cloudy"__proto__: Objectlength: 1__proto__: Array[0]displayState: "Bangalore, India"state: "Bangalore"__proto__: Object__proto__: Object
但是,在此之后我无法添加新数据。有人可以帮忙吗?
以下代码正在运行。
var wd = { item: [] };
var
location = weatherData.query.results.weather.rss.channel.location,
forecast = weatherData.query.results.weather.rss.channel.item.forecast[0];
wd.item.push({
country: location.country,
state: location.city,
displayState: location.city + ', ' + location.country,
data: {
date: forecast.date,
day: forecast.day,
high: forecast.high,
low: forecast.low,
text: forecast.text
}
});
console.log(wd);
感谢大家的帮助。
【问题讨论】:
-
umm 与问题无关,但您为什么不创建一个临时变量并将
weatherData.query.results.weather.rss.channel.item存储在其中?将更具可读性。 -
由于这个问题与 JSON 完全没有关系,我已经删除了
json标签。
标签: javascript angularjs javascript-objects