確定Javascript對象是否只有一個特定的鍵 - 值對最簡單的方法是什麼?如何判斷一個Javascript對象是否只有一個特定的鍵值對?
例如,我需要確保存儲在變量text
對象只包含鍵值對「身份證」:「消息」
確定Javascript對象是否只有一個特定的鍵 - 值對最簡單的方法是什麼?如何判斷一個Javascript對象是否只有一個特定的鍵值對?
例如,我需要確保存儲在變量text
對象只包含鍵值對「身份證」:「消息」
var keys = Object.keys(text), key = keys[0];
if (keys.length !== 1 || key !== "id" || text[key] !== "message")
alert("Wrong object");
var moreThanOneProp = false;
for (var i in text) {
if (i != 'id' || text[i] != 'message') {
moreThanOneProp = true;
break;
}
}
if (!moreThanOneProp)
alert('text has only one property');
如果您知道屬性你想要,只是製作一個對象的淺拷貝不會更快,修剪所有東西都不需要?
var text = {
id : "message",
badProperty : "ugougo"
}
text = { id : text.id }
假設我理解正確你的問題......
可以字符串化,並設法用一個正則表達式匹配。例如:
if (JSON.stringify(test).match(/\"id":\"message\"/)) {
console.log("bingo");
}
else console.log("not found");
如果你正在談論的所有枚舉的屬性(即那些對象及其[[Prototype]]
鏈上),你可以這樣做:
for (var prop in obj) {
if (!(prop == 'id' && obj[prop] == 'message')) {
// do what?
}
}
如果你只是想測試的枚舉的屬性對象本身,則:
for (var prop in obj) {
if (obj.hasOwnProperty(prop) && !(prop == 'id' && obj[prop] == 'message')) {
// do what?
}
}
鍵值存儲區是Javascript中的對象。數組是數字鍵的一種特殊對象。既然你用「'id」這個關鍵詞來談論某件事情,那麼你肯定是在討論一個對象而不是數組。 – Chuck
謝謝你糾正這一點。 – FatalKeystroke