我聲明瞭一個函數,當給定一個字符串作爲參數時,返回一個對象,其中的鍵是字符串中的單詞。值是字符串中該單詞的出現次數。無法將變量聲明爲JavaScript中的對象屬性
當我運行下面的代碼時,我得到{}。
function countWords(string) {
var result = {};
var words = string.split(' ');
for (var i = 0; i < words.length; i++) {
var currentElement = words[i];
var prop = result[currentElement];
if(prop) {
prop += 1;
} else {
prop = 1;
}
}
return result;
}
console.log(countWords('hello hello')); // => {'hello': 2}
然而,隨着result[CurrentElement] = 1
更換prop = 1
返回預期的答案。
爲什麼在這種情況下使用prop = 1是錯誤的?
'prop'僅僅是一個變量。如果將它分配給某個屬性,那麼編寫'prop = 1',您只需將'prop'重新定義爲'1'。你實際上並沒有觸及財產本身。 – Xufox
可能重複的[是變量/對象傳遞的價值,爲什麼我不能改變對象的屬性與變量在JavaScript?](http://stackoverflow.com/questions/36865168/are-variables-objects-passed-by-價值和爲什麼-着,我變的對象屬性-W) – Xufox