js以變數調用json未知keys的方法?
js遍歷json的時候,假設本人並不知道key究竟是什麼,如何才能調用key呢?以例子來說明:
var json = [{ "Day": "Thursday","session1": "Open for All",
"session2": "Open for All", "session3": "Open for All", "session4": "Co-cu Male only","session5": "Co-cu Male only"
}, { "Day": "Friday", "session1": "Open for All", "session2": "Pray Time","session3": "Open for All",
"session4": "Co-cu Female only", "session5": "Co-cu Female only" }]Object.keys(json)可以獲取key沒有錯,但考慮到將來或許需要接收更多key值不一樣json文件,想直接自己寫一個function該怎麼辦var keys = Object.keys(json[0]) 返回[ "Day","session1","session2","session3","session4","session5"]
keys[0] 返回 "Day"如何做到json[0].keys[0]實現,json[0].Day的效果
新一點的 :: 運算符:
let firstProperty = {
foo: "abc",
bar: 123
}::getPropertyByIndex(0);
function getPropertyByIndex(index) {
let keys = Object.keys(this);
let key = keys[index];
return this[key];
}
或者 getter:
Object.defineProperty(Object.prototype, "properties", {
get() {
return Object
.keys(this)
.map(key =&> this[key]);
}
});
js object property 是無序的,你通過 Object.keys() 獲得的結果,順序也是不能保證的。
var obj = {"mykey1": "value1", "mykey2": "value2"};var arrKey = [];for (var key in obj) { console.log(key); console.log(obj[key]); arrKey.push(key);}console.log(arrKey); // 這就包含了obj中所有的鍵值,你就可以通過arrKey[0]取到第一個鍵值
你就不應該用對象存儲數據。
如果你的數據本來就是列表,需要存留前後隊列關係,請用數組。
這裡的對象存儲請當成一個key和value的映射關係,而key可以賦予語意,讓描述更清晰準確。推薦閱讀:
※教學用的代碼使用面向對象技術合適嗎?
※先有Class還是先有Object?
※「重載」的正確讀音是什麼?
※如何理解js的面相對象?
TAG:JavaScript | jQuery | 面向對象編程 | JSON |