Javascript - 无法检查数组中是否有数字

时间:2016-11-18 02:44:45

标签: javascript arrays digits

enter image description here

这是一个糟糕的情况。

我想检查一个数字是否在给定的数字数组中。 但它会带来神秘的结果。

这是我拍摄的控制台图片。

我还检查数组中的数字和元素的类型。 蓝色一个具有数字类型元素,红色一个具有字符串类型元素。 对于单个数字,蓝色数字是数字类型,黑色数字是字符串类型。 但是这种类型对结果没有任何影响。

检查完所有结果后,我发现数字大于10,两位数,会产生问题。 1~10个数字不会出现奇怪的情况。

有什么问题?我该如何解决这个问题?

这是我的代码。 这是长代码的一部分,所以我稍微调整一下以便单独理解。

post('/register')

2 个答案:

答案 0 :(得分:0)

您可以尝试import { Component } from '@angular/core';

Array.indexOf

有关var array = [2,3,10,11,12,13,14,18,20,21,25]; var myObject = {'2': obj,'3': obj,'10': obj,'11': obj} for (let key in myObject){ if (array.indexOf(parseInt(key)) == -1){ //If the value is not found //Element not found } else{ //Element found } } 的更多信息,请here

答案 1 :(得分:0)

要检查数组中是否存在元素(true / false),您需要检查newArray.indexOf(newNumber) !== -1newArray.indexOf(newNumber) > -1,如下所示。

另外,在上面的array.map(function(x) { return parseInt(x, 10) }代码中,您没有关闭array.map(

打开的括号

工作代码:

var obj = {};
var object = {'2': obj, '3': obj, '10': obj, '11': obj};

var array = Object.keys(object)
var newArray = array.map(function(x) {
   return parseInt(x, 10)
});
   
var number = 10;
var newNumber = parseInt(number, 10); // number is from above code, just a number.

console.log(newArray);
console.log(newNumber);
console.log(newArray.indexOf(newNumber));
console.log(newArray.indexOf(newNumber) !== -1); // To get true or false you need either this or the below one
console.log(newArray.indexOf(newNumber) > -1);