我通常使用數組來實現可能更適合使用對象的任務。我沒有繼續想知道使用對象來完成任務會更好,而是決定在Stack Overflow上提出問題。什麼時候應該在數組上使用對象,反之亦然?
array = ["James", 17];
object = {name:"James", age:17};
他們似乎都在語法類似,對我,他們似乎使用時,實現同樣的事情。什麼時候應該在數組上使用一個對象,反之亦然?關於什麼時候我應該使用一個的一般規則?
我通常使用數組來實現可能更適合使用對象的任務。我沒有繼續想知道使用對象來完成任務會更好,而是決定在Stack Overflow上提出問題。什麼時候應該在數組上使用對象,反之亦然?
array = ["James", 17];
object = {name:"James", age:17};
他們似乎都在語法類似,對我,他們似乎使用時,實現同樣的事情。什麼時候應該在數組上使用一個對象,反之亦然?關於什麼時候我應該使用一個的一般規則?
當你想要命名鍵(鍵:值對)時使用一個對象,否則使用一個數組。你甚至可以使用數組符號使用對象:
object = {name:"James", age:17};
object['name']; // James
在你的情況下,它看起來就像你在一個人的字段存儲信息。在這裏,使用一個對象是非常合理的,因爲這個鍵標識了你在每個字段中存儲的數據的類型。一個數組是一個簡單的數據列表。
非常感謝。這對我以前的做索引常量的事情來說似乎是一種更好的方式。對象似乎自己做到了。 :d – jskidd3
在使用數組的第一個示例中,您正在設置該數組中兩個索引之間的關係。這是令人沮喪的,因爲你的代碼沒有固有的知識,你打算相互關聯。這是在第二行中使用對象的絕佳機會。
考慮的機會,同時使用它們:
var match = {};
var peopleProps = {
hair: ['brown', 'blonde', 'red'],
eyes: ['brown', 'blue', 'green']
};
var person = {
name: 'James',
age: '17',
hair: 'brown',
eyes: 'blue'
};
for(var prop in person) {
for(var subProp in peopleProps) {
for(var i=0, l=peopleProps[subProp].length; i<l; i++) {
if(prop == subProp && person[prop] === peopleProps[subProp][i]) {
(match[prop][subProp])? match[prop][subProp]++ : match[prop][subProp] = 1;
}
}
}
}
在這裏我們可以看到使用數組來創建映射條件和對象,以關聯的實用性。
關鍵是:抽象層次。您需要按照「現實生活」中的方式對數據進行建模。一個數組是一個項目列表,一個對象是一個項目。
看看http://stackoverflow.com/questions/688097/objects-vs-arrays-in-javascript-for-key-value-pairs – mguimard
你有什麼想法?如果它不轉換爲CSV,那麼對象通常更適合。 – Bergi