相关疑难解决方法(0)

'!!〜'在Javascript中做什么?

我在github上看到了以下一段代码.

/**
 * Filters an array of objects with multiple criteria.
 *
 * @param  {Array}  array: the array to filter
 * @param  {Object} filters: an object with the filter criteria as the property names
 * @return {Array}
 */
function multiFilter(array, filters) {
  const filterKeys = Object.keys(filters);
  // filters all elements passing the criteria
  return array.filter((item) => {
    // dynamically validate all filter criteria
    return filterKeys.every(key => !!~filters[key].indexOf(item[key]));
  });
}
Run Code Online (Sandbox Code Playgroud)

我不明白,!!~这里做了什么?

PS:我知道C和C++语言,但我是Javascript的新手.我知道那些运算符,但我不明白,为什么使用!!带有按位not(~)运算符的double negation()?

javascript bitwise-operators

3
推荐指数
1
解决办法
525
查看次数

〜(tilde)Infinity如何变为-1

〜Infinity我的问题是它如何计算为-1。

〜无限= -1

因为

无限+无限=无限

console.log(Infinity+Infinity)
Run Code Online (Sandbox Code Playgroud)

要么

无限-无限= NaN

console.log(Infinity-Infinity)
Run Code Online (Sandbox Code Playgroud)

~Infinity输出是如何到达的-1;

javascript

2
推荐指数
1
解决办法
100
查看次数

-~ 在 JavaScript 中做什么?

我正在查看其他人的代码,并试图弄清楚他们在做什么。有问题的代码段如下所示:

for(j in a)     
  for(i in a)
    y=a[i]+-~j,b=a[j]
Run Code Online (Sandbox Code Playgroud)

我明白这y=a[i]部分,但有什么作用+-~j

javascript operators code-snippets

2
推荐指数
1
解决办法
1472
查看次数

indexOf!= -1会返回一个布尔值吗?

我刚刚开始学习Javascript,我对下面的特定代码有一个特定的问题.它是Eloquent Javascript第4章中lycanthrope登录的一部分.由于我的问题的特殊性,我没有包括与此问题相关的所有其他代码,因为我认为没有必要回答我的问题.

如果这被认为是"不良做法",请告诉我,我将确保修改此和/或未来的帖子以显示更多背景信息.

在下面的代码中,第二行显示返回.到目前为止,我已经了解到indexOf返回一个正数或零,当且仅当它发现其中传递的任何内容时才会发生.如果没有发现,则返回-1.

在这种情况下,它后跟!= -1,我理解为"不等于-1".这对我来说很清楚.

我不完全理解的是第2行的实际回报最终是什么.它返回true或false的布尔值吗?或者它是否返回了找到"事件"的实际索引?

接下来,在第一个if语句中,我们再次看到hasEvent变量.我将此语句读作"如果hasEvent(event,entry)为true,则将1添加到索引中.

我是否正在阅读'这是正确的,第二行的回报确实是一个布尔值?

function hasEvent (event, entry) {
  return entry.events.indexOf(event) != -1;
}

function tableFor (event, journal) {
 var table = [0, 0, 0, 0];
 for (var i=0; i < journal.length; i++) {
  var entry = journal[i] , index = 0;
  if (hasEvent(event, entry)) index += 1;
  if (entry.squirrel) index += 2;
  table [index] += 1;
}
 return table;
}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助,请告诉我是否应该以不同的方式陈述此问题!我想在继续之前确保我理解事情!

javascript

1
推荐指数
2
解决办法
1203
查看次数

为什么〜 - (2 +"2")是21?

我在测试中看到了这个问题,但我不明白运算符如何处理该语句.

let a = ~-(2 + "2");
console.log(a);
Run Code Online (Sandbox Code Playgroud)

javascript operators

1
推荐指数
1
解决办法
627
查看次数

javascript函数中〜的含义

我正在读这个javascript函数:

if (~['bacon', 'burger'].indexOf(type)) {
    this.res.writeHead(200, { 'Content-Type': 'text/plain' });
    this.res.end('Serving ' + type + ' sandwich!\n');
  }
Run Code Online (Sandbox Code Playgroud)

但是我不~ 知道当我使用它或者含义时,有人知道什么意思?

javascript node.js

0
推荐指数
1
解决办法
63
查看次数