这个Javascript代码是什么意思?
我正在尝试做一个算法挑战。我从一个完整的答案中看到了这个代码。我是javascript新手,所以我对代码没有完全的把握。我知道,代码的第一部分基本上接受了输入,并将其转换为一个映射。然后初始化匹配对数组和计数器。我在for循环部分几乎迷路了。不太清楚什么是这个Javascript代码是什么意思?,javascript,Javascript,我正在尝试做一个算法挑战。我从一个完整的答案中看到了这个代码。我是javascript新手,所以我对代码没有完全的把握。我知道,代码的第一部分基本上接受了输入,并将其转换为一个映射。然后初始化匹配对数组和计数器。我在for循环部分几乎迷路了。不太清楚什么是matchingPairs[''+c[i]]=matchingPairs[''+c[i]]|0可以。我猜for循环将匹配对的所有元素添加到数组中,并添加到计数器中 function main() { var n = parseInt(readL
matchingPairs[''+c[i]]=matchingPairs[''+c[i]]|0代码>可以。我猜for循环将匹配对的所有元素添加到数组中,并添加到计数器中
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);
函数main(){
var n=parseInt(readLine());
c=读线()。拆分(“”);
c=c.map(编号);
var matchingPairs={};
var matchingPairCount=0;
对于(var i=0;i
}一个更简单的例子
a = {}
a["b"] = a["b"] || 0
console.log(a) // {b: 0}
将
设置为空对象<代码>a[“b”]
尚未设置为任何值,因此当访问时,它返回未定义的
“未定义”是错误的-因此这有效地将a[“b”]
设置为0
再举一个例子,
a = {b: 5}
a["b"] = a["b"] || 0
console.log(a) // {b: 5}
本例中唯一的区别是a[“b”]
是truthy(即,它返回5而不是未定义)
这是一种javascript方法,仅当变量尚未设置为其他值时,才将其设置为值,提供一个空格分隔的数字字符串
计算每个数字的计数
每次计数为偶数时,matchingPairCount
就会递增
简言之:它是对匹配的数字进行计数
n
未使用?尝试var x={};x['a']=x['a']| | 0;控制台日志(x)代码>看看会发生什么-当然,下一行也可以合并到这个中<你懂python吗<当没有属性a
(或当属性的计算结果为false
)时,code>x['a']|0
的行为类似于defaultdict
的计算结果''+x
是String(x)
的缩写。出于兴趣,这是一个挑战网站吗?如果是,哪一个?