我想要做一個算法的挑戰。我從一個完整的答案中看到了這段代碼。我是新來的JavaScript,所以我不完全確定的代碼。我知道代碼的第一部分很大程度上需要輸入並將其輸入到地圖中。然後初始化一個匹配的對數組和一個計數器。我幾乎迷失在for循環部分。不太確定matchingPairs[""+c[i]] = matchingPairs[""+c[i]] || 0;
做什麼。我猜測for循環將匹配對的所有元素添加到數組並添加到計數器。這個Javascript代碼是什麼意思?
function main() {
var n = parseInt(readLine());
c = readLine().split(' ');
c = c.map(Number);
var matchingPairs = {};
var matchingPairCount = 0;
for(var i=0; i< c.length; i++) {
matchingPairs[""+c[i]] = matchingPairs[""+c[i]] || 0;
matchingPairs[""+c[i]] += 1;
if (matchingPairs[""+c[i]] % 2 === 0) {
matchingPairCount += 1;
}
}
console.log(matchingPairCount);
}
嘗試'var x = {}; x ['a'] = x ['a'] || 0; console.log(x);'看看會發生什麼 - 當然,下一行也可以包含在這裏...'x ['a'] =(x ['a'] || 0)+ 1' –
@ Andy.W你知道python嗎? 'x ['a'] ||如果沒有屬性'a'(或者屬性評估爲'false'),0'表現爲'defaultdict',評估爲'0'。 '''+ x'是'String(x)'的縮寫。 –
出於興趣是這個挑戰網站?如果是這樣的話? – Ben