我一直对这一整夜都感到头痛。在JavaScript对象中获取子数据
你会看到有对象了GUID,父对象下嵌套。我需要遍历所有“GUID”对象并获取属性(即作者,内容等)。
GUID是动态的(我不知道它们是什么时间提前)。它下面的属性是已知的。
我很难搞清楚如何定位它。我似乎无法成功使用for
或forEach
循环。
我需要使用原生JavaScript(即没有这个jQuery)。
我一直对这一整夜都感到头痛。在JavaScript对象中获取子数据
你会看到有对象了GUID,父对象下嵌套。我需要遍历所有“GUID”对象并获取属性(即作者,内容等)。
GUID是动态的(我不知道它们是什么时间提前)。它下面的属性是已知的。
我很难搞清楚如何定位它。我似乎无法成功使用for
或forEach
循环。
我需要使用原生JavaScript(即没有这个jQuery)。
这里是一个可能的解决方案:
var keys = Object.keys(data);
var results =
keys.map(
function(key){
var datum = data[key];
// do whatever with the data.
return {
"author" : data["author"]
}
}
)
// now results is an array of {"author"} objects.
这对我有用。 –
var x = {
'a-45-2455': {
'author': 'Some Name'
}
};
var keys = Object.keys(x);
keys.forEach(function(key,value){
var author = x[key]['author'];
console.log(author);
});
您可以通过这种方式访问数据。 您也可以从这些值创建另一个数组并使用它。
为了遍历一个对象使用for...in
因为我们还没有发布对象的代码,这里是虚拟对象
var x = {
'a-45-2455': {
'author': 'Some Name'
}
}
for(var keys in x){
alert(x[keys].author)
}
如果你是一个片段使用angular尝试angular.forEach循环来遍历所有的GUID,否则你可以在javascript中使用每个GUID。请参阅下面的代码片段。
var user ={
'1': {
"name":'abc',
"age":26
},
'2': {
"name":'def',
"age":28
}
};
for(var key in user) {
console.log(user[key].name);
}
我相信你可以通过所有指标采用先进的循环迭代。 a.b
与javascript中的a["b"]
相同。
这里是另一种方式,通过JSON对象进行迭代
var obj = {a: 1, b: 2, c: {a: 1, b: 2}};
function walk(obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var val = obj[key];
console.log(val);
walk(val);
}
}
}
walk(obj);
var obj = {a: 1, b: 2, c: {a: 1, b: 2}};
function walk(obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var val = obj[key];
console.log(val);
walk(val);
}
}
}
walk(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
可以遍历通这样的对象属性:
for(let key in Response){
if(!Response.hasOwnProperty(key))
continue;
//key will be each GUID
let yourObject = Response[key] //Each object in the list of objects
}
你可以阅读有关for...in loops here
希望帮助!
根据嵌套级别使用嵌套'for'的简单方法,'for(var i = 0; i
Aria