如何检查所有数组的元素?

时间:2017-05-05 17:00:20

标签: javascript

我有一个功能:

function getNumber(number, array){
  for(var i=0; i<array.length; i++){
    if (array[i] == number) {
      return true;
    } else {
      return false;
    }
  }
}

console.log(getNumber(3, [5, 6, 3, 8]));

当然它会一直返回'false',因为'return'除了array [0] == number之外的那些情况。我的问题是如何继续检查所有数组元素的进程?我知道这是基本的,但我找不到解决方案。

5 个答案:

答案 0 :(得分:3)

您只需将return false;语句移动到函数末尾即可。

这意味着如果找到一个值,那么迭代将在返回true时停止。如果未找到,则返回false

function getNumber(number, array){
  for(var i=0; i<array.length; i++){
    if (array[i] == number) {
      return true;
    }
  }
  return false;
}

console.log(getNumber(3, [5, 6, 3, 8]));

答案 1 :(得分:2)

只有在检查完所有值后才返回false值

function getNumber(number, array){
for(var i=0; i<array.length; i++){
if (array[i] == number) {
  return true;
}
}
return false;
}

答案 2 :(得分:2)

你必须移动else并在for的末尾返回false,否则你的第一个值不匹配,将返回false。 您的代码应更改为:

function getNumber(number, array){
  for(var i=0; i<array.length; i++){
    if (array[i] == number) {
      return true;
    }
  }
  return false;
}

console.log(getNumber(3, [5, 6, 3, 8]));

你所做的就是这样:

var a = [5, 6, 3, 8];
console.log(a.indexOf(3));

如果元素不存在,indexOf将返回-1,否则返回元素的索引。这里的文档: https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

答案 3 :(得分:0)

if (array[i] == number)将此数组值存储在任何临时值(例如temp = array[i]时)执行循环后,您不能返回true,然后您可以返回值return k

答案 4 :(得分:-1)

如果您定位的是现代浏览器或Node.js,则可以使用Array#some

array.some(function(element) { return element === number });

完整的例子是:

&#13;
&#13;
var check = function(number, array) {
  return array.some(function(element) { return element === number });
}

console.log(check(3, [ 1, 2, 3 ])); // true
console.log(check(5, [ 1, 2, 3 ])); // false
&#13;
&#13;
&#13;