因此,我通过提示将元素推入数组,直到获得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
答案 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
函数find
。
https://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);
});