[英]Javascript push list on object empty array
我想從對象中獲取標簽列表
這是完整的代碼和數據:
$(document).ready(function() {
obj =
{
"category":[
{
"id":"8098",
"tags":{
"411":"something",
"414":"something else"
}
}
]
};
var tagList = [];
for (var index in obj) {
for (var indexSub in obj[index].tags) {
blah = (obj[index].tags[indexSub]);
tagList.push(blah);
}
}
console.log(tagList);
});
這是jsFiddle的鏈接
問題是taglist返回一個空數組。
我怎樣才能解決這個問題?
你的
for (var index in obj) {
for (var indexSub in obj[index].tags) {
blah = (obj[index].tags[indexSub]);
tagList.push(blah);
}
}
獲取屬於該category
的tags
新功能
for (var index in obj) {
for (var indexSub in obj[index]) {
blah = (obj[index][indexSub].tags);
tagList.push(blah);
}
}
請參閱訪問屬性的方式的不同之處
obj = { "category": [ { "id": "8098", "tags": { "411": "something", "414": "something else" } } ] }; var tagList = []; for (var index in obj) { for (var indexSub in obj[index]) { tagList = (obj[index][indexSub].tags); // tagList.push(blah); } } console.log(tagList);
你需要迭代類別,然后獲取標簽的鍵和值,像這樣的一些。
var obj = { "category":[ { "id":"8098", "tags":{ "411":"something", "414":"something else" } } ]}; var tagList = []; obj.category.forEach( o =>{ for (property in o.tags){ tagList.push(property + ':'+ o.tags[property]); }; }); console.log(tagList);
這是你的jsfiddle
obj =
{
"category":[
{
"id":"8098",
"tags":{
"411":"something",
"414":"something else"
}
}
]
};
var tagList = [];
for (key in obj) {
for(subKey in obj[key]){
var myTags=obj[key][subKey].tags;
for(tag in myTags){
tagList.push(tag);
}
}
}
console.log(tagList);
您可以使用Array#reduce
和Object.keys
with Array#map
Object.keys
迭代並獲取所有標記。
var obj = { "category": [{ "id": "8098", "tags": { "411": "something", "414": "something else" } }] }, tagList = obj.category.reduce(function (r, a) { return r.concat(Object.keys(a.tags).map(function (t) { return a.tags[t]; })); }, []); console.log(tagList);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.