值我有這樣的對象:從對象獲取的JavaScript
var data = {"id": 1, "second": "abcd"};
這是從一種形式的值。我通過這個函數進行驗證。
如果上述屬性存在,我們可以使用data["id"]
和data["second"]
來獲得它們的值,但有時,根據其他值,屬性可能會不同。
如何從data
獲得獨立於屬性名稱的值?
值我有這樣的對象:從對象獲取的JavaScript
var data = {"id": 1, "second": "abcd"};
這是從一種形式的值。我通過這個函數進行驗證。
如果上述屬性存在,我們可以使用data["id"]
和data["second"]
來獲得它們的值,但有時,根據其他值,屬性可能會不同。
如何從data
獲得獨立於屬性名稱的值?
訪問對象的屬性,而無需知道這些屬性的名稱,你可以使用一個for ... in
循環:
for(key in data) {
if(data.hasOwnProperty(key)) {
var value = data[key];
//do something with value;
}
}
不要忘記檢查'hasOwnProperty' –
@PaulS。感謝提醒:)更新了答案 – cfs
退出'.hasOwnProperty'。我們不要分散使用不必要的警衛。這是不好的做法。 –
我很抱歉,你最後的問題是不是清楚,但你是從非常錯誤的第一行。可變數據是對象不是陣列
訪問一個對象的屬性是很容易的:
alert(data.second);
但是,如果這並不能完全回答你的問題,請澄清並回傳。
謝謝!
使用
的console.log(可變)
,如果你使用谷歌Chrome中打開控制檯通過按Ctrl + Shift + J
轉到>>控制檯
如果你想請嘗試:
Object.keys(a).map(function(key){return a[key]})
指出Object.keys()在IE9 +支持的ECMA5中引入可能很有用。 – Soulriser
如果您$
定義然後可以遍歷
var data={"id" : 1, "second" : "abcd"};
$.each(data, function() {
var key = Object.keys(this)[0];
var value = this[key];
//do something with value;
});
如果你知道鍵
data.id
或
data["id"]
它爲我工作...謝謝 –
在ES2017你可以使用Object.values()
的數值您可以通過以下方式訪問它:
Object.values(data)
在撰寫本文時,支持有限(FireFox和Chrome)。
除IE以外的所有主流瀏覽器都支持這一功能。
在ES2015您可以使用此:
Object.keys(data).map(k => data[k])
使用lodash_.values(object)
_.values({"id": 1, "second": "abcd"})
[ 1, 'abcd' ]
lodash
包括一大堆的其他功能與數組,對象集合,串的工作,多指你希望被建成JavaScript(實際上似乎慢慢地進入語言)。
這是一個_Object_,而不是_Array_。 –
首先,這不是一個數組。其次,你所稱的「索引」通常稱爲屬性名稱或密鑰。沒有辦法獲得價值,除了財產。儘管任何表達式都可以放在'[]'中,並且它的返回值將被用作屬性名稱。 –
對不起................. –