Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Javascript代码是什么意思?_Javascript - Fatal编程技术网

这个Javascript代码是什么意思?

这个Javascript代码是什么意思?,javascript,Javascript,我正在尝试做一个算法挑战。我从一个完整的答案中看到了这个代码。我是javascript新手,所以我对代码没有完全的把握。我知道,代码的第一部分基本上接受了输入,并将其转换为一个映射。然后初始化匹配对数组和计数器。我在for循环部分几乎迷路了。不太清楚什么是matchingPairs[''+c[i]]=matchingPairs[''+c[i]]|0可以。我猜for循环将匹配对的所有元素添加到数组中,并添加到计数器中 function main() { var n = parseInt(readL

我正在尝试做一个算法挑战。我从一个完整的答案中看到了这个代码。我是javascript新手,所以我对代码没有完全的把握。我知道,代码的第一部分基本上接受了输入,并将其转换为一个映射。然后初始化匹配对数组和计数器。我在for循环部分几乎迷路了。不太清楚什么是
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)
的缩写。出于兴趣,这是一个挑战网站吗?如果是,哪一个?