这是一个糟糕的情况。
我想检查一个数字是否在给定的数字数组中。 但它会带来神秘的结果。
这是我拍摄的控制台图片。
我还检查数组中的数字和元素的类型。 蓝色一个具有数字类型元素,红色一个具有字符串类型元素。 对于单个数字,蓝色数字是数字类型,黑色数字是字符串类型。 但是这种类型对结果没有任何影响。
检查完所有结果后,我发现数字大于10,两位数,会产生问题。 1~10个数字不会出现奇怪的情况。
有什么问题?我该如何解决这个问题?
这是我的代码。 这是长代码的一部分,所以我稍微调整一下以便单独理解。
post('/register')
答案 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) !== -1
或newArray.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);