我一直對這一整夜都感到頭痛。在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