如何查找首次出现的两位数数字

时间:2019-01-05 14:24:13

标签: javascript math digits

因此,我通过提示将元素推入数组,直到获得0。之后,我试图找到第一个两位数数字。例如,如果数组为Private Shared Function GetSomePropertyValues(substructures As IScrNamedObjectList) As SomeType() Dim values As New List(Of SomeType) For i = 0 To substructures.Count - 1 value.Add(substructures.Item(i).SomeProperty) Next Return values.ToArray() End Function ,则我的程序应返回55。

Private Shared Function GetSomePropertyValues(substructures As IScrNamedObjectList) As SomeType()
    Return substructures.Cast(Of IScrSubstructure)().
                         Select(Function(s) s.SomeProperty).
                         ToArray()
End Function

4 个答案:

答案 0 :(得分:1)

没有数学的简便方法就是将其转换为字符串。

const data = [2,3,55,0];

const res = data.findIndex(n=>`${n}`.length===2);

console.log(res > -1 ? "Exists at position " + res : "Doesn't exist");

数学上:

const data = [2,111,3,55,0];

const res = data.find(n=>n<100&&n>9);

console.log(res ? "Exists " + res : "Doesn't exist");

答案 1 :(得分:1)

请使用内置的js函数findhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

这是解决方案

// I assume that you already have an array   
const niz = [2,3,55,0]
const firstDoubleDigit = niz.find(num => num < 100 && num >= 10)
console.log(firstDoubleDigit)

答案 2 :(得分:1)

这是我认为您正在寻找的答案。

我省略了数组填充部分。

如果只需要检查每个数字,并且第一个数字符合条件,那么为什么要进行任何除法运算,那么您就有两位数的数字,因此请按 break 退出循环,或者返回关键字。

var niz = [1, 2, 55, 13];
for (var i = 0; i < niz.length; i++) {
    if (niz[i] > 9 && niz[i] < 100) {
        console.log('Pronadeni broj je:', niz[i]);
        break;
    }
}

您还可以转换为字符串:if (niz[i].toString().length===2){ // your number }

答案 3 :(得分:0)

您使用if (niz[i] / 10 > 0 && niz[i] / 100 == 0) {通过除法确定i是否在10到99之间。

但是,如果要这样做,此部分应大于一个niz[i] / 10 > 0,而该部分niz[i] / 100 == 0应该小于一个。

那会给你:

if (niz[i] / 10 >= 1 && niz[i] / 100 < 1) {

function findFirstDouble(val) {
  for (var i = 0; i < val.length; i++) {
    if (val[i] / 10 >= 1 && val[i] / 100 < 1) {
      return val[i];
    }
  }
  return null;
}

const arrays = [
  [1, 2, 55, 13],
  [9, 1000],
  [1, 2]
];

arrays.forEach(s => {
  var res = findFirstDouble(s);
  console.log(res !== null ? res : "No double digit numbers in: " + s);
});

但是比较niz[i]的值和10和100会更容易。您可以更新代码,让函数findFirstDouble找到第一个两位数并执行提示除此之外,您还可以重复使用它。

function findFirstDouble(val) {
    for (var i = 0; i < val.length; i++) {
        if (val[i] >= 10 && val[i] < 100) {
            return val[i];
        }
    }
    return null;
}

function findFirstDouble(val) {
  for (var i = 0; i < val.length; i++) {
    if (val[i] >= 10 && val[i] < 100) {
      return val[i];
    }
  }
  return null;
}

const arrays = [
  [1, 2, 55, 13],
  [1, 2]
];

arrays.forEach(s => {
  var res = findFirstDouble(s);
  console.log(res !== null ? res : "No double digit numbers in: " + s);
});