根据值(整数,字符串)或(整数,浮点数)的混合返回数组的索引
Returning index of an array based on mixture of values(integer,string) or (integer,float)
嗨,我试图找到一个百分比和整数数组数字的索引。假设arraynum = ['10%','250','20%','500']
和用户发送一个值15%
,这个数字在哪个范围内?我可以找到一个整数的索引使用这个代码
function test(number, ranges) {
for (var i = 0; i < ranges.length; ++i) {
if (number < ranges[i]) {
return i;
}
}
}
var ranges = [2000, 4000, 6000, 999999];
console.log(test(1710, ranges));
现在我有的整数和百分比值内的数组和数字,用户传递给这个函数可以是整数,小数或百分比如何找到在哪个索引驻留给定的数字?我应该将混合数组中的所有值转换为某种格式吗?如何做到这一点?有人能帮我一下吗?
使用parseFloat()
获取字符串的浮点值。您可以使用它只解析到字符串中的第一个非数字字符的事实来忽略%
。
下面是使用ES6中的Array#findIndex
的实现。
function test(number, ranges) {
var num = parseFloat(number);
return ranges.findIndex(function(element) {
return num === parseFloat(element);
});
}
你可以这样重构你的代码
arraynum = ['10%','250','20%','500'];
function test(value, arr) {
return arr.indexOf(value.toString());
}
test("10%", arraynum); // 0
test("500", arraynum); // 3
用一个输入检查混合值的条件有点棘手,您需要使用JSON数组。请运行
var array_of_elements = [{
"Price": 250,
"Percentage": "10"
}, {
"Price": 500,
"Percentage": "25"
}, {
"Price": 750,
"Percentage": "50"
}, {
"Price": 1000,
"Percentage": "75"
}];
function test(number_or_percent, array) {
for (var i = 0; i < array.length; ++i) {
if (number_or_percent.charAt(number_or_percent.length - 1) == "%") {
if (parseInt(array[i].Percentage) > parseInt(number_or_percent.slice(0, ((number_or_percent.length) - 1)))) {
return i;
}
} else {
if (array[i].Price > parseInt(number_or_percent)) {
return i;
}
}
}
}
console.log(test('100', array_of_elements));
console.log(test('30%', array_of_elements));
这是你想要的吗?
相关文章:
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 检测个位数整数时正在转换毫秒
- 限制javascript变量的最小/最大整数
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 正则表达式只允许 x 个整数
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 如何在Chartjs中制作整数比例
- 减去两个索引不同但值相同的整数
- 使用jquery从整数中减去
- 有效地获取两个区间之间的随机整数
- 混合元素的有角度的ng重复
- VueJS多个混合
- 为什么我的javascript程序没有将其转换为整数而不是字符串
- 带静态字符e输入的文本框数字和带javascript的负整数
- Javascript-当存在's是一个整数标记
- parseInt()方法如何返回整数
- 由于某种原因,JavaScript整数存储为未定义
- Js char数组将字符串整数视为整数
- 根据值(整数,字符串)或(整数,浮点数)的混合返回数组的索引