在这里,我试图在JavaScript中找到数组中负数的索引? 请帮帮忙?
Case1: var arr=[1,-5,-6,7,8,9,10,-14,6,-7];
/*---------logic to find index of negative numbers in an array?*/
console.log();
Case2: var arr=["1","-3","5","-9","-10","11"]
/*------logic to find index of negative numbers from array of strings(arr)?*/
console.log();
Case3: var arr=["1","-3M" ,"2P","-8Q","-10.8%","-$8.00M"]
/*----------How to find index of "-" in an array of strings----------*/
console.log()
答案 0 :(得分:3)
您可以将索引与索引仅映射为负数,然后仅过滤具有有效索引的索引。
var array = [1, -5, -6, 7, 8, 9, 10, -14, 6, -7],
indices = array
.map((a, i) => a < 0 ? i : -1)
.filter(a => a !== -1);
console.log(indices);
&#13;
对于字符串几乎相同,并检查第一个字符是-
。
var array = ["1", "-3M", "2P", "-8Q", "-10.8%", "-$8.00M"],
indices = array
.map((a, i) => a[0] === '-' ? i : -1)
.filter(a => a !== -1);
console.log(indices);
&#13;
现在使用toString
方法解决数字或字符串问题。
var array = ["1", -3, "2P", "-8Q", "-10.8%", "-$8.00M"],
indices = array
.map((a, i) => a.toString()[0] === '-' ? i : -1)
.filter(a => a !== -1);
console.log(indices);
&#13;
答案 1 :(得分:1)
使用 Array.forEach()
循环方法和正则表达式。
这是一个可以处理所有3个场景的函数。
var arr = [1,-5,-6,7,8,9,10,-14,6,-7];
var arr2 = ["1","-3","5","-9","-10","11"];
var arr3 = ["1","-3M" ,"2P","-8Q","-10.8%","-$8.00M"];
function getNegatives(arr){
var results =[];
arr.forEach(function(item, index){
// If item is a string, remove all non-numeric characters and then convert to a number
var newItem = (typeof item === "string") ? parseFloat(item.replace(/[^-\d\.]/g,'')) : item;
if(newItem < 0){ results.push(index); }
});
console.log(results);
}
getNegatives(arr);
getNegatives(arr2);
getNegatives(arr3);
答案 2 :(得分:0)
您可以使用for
循环和if
条件来执行此操作。
var arr = [1,-5,-6,7,8,9,10,-14,6,-7];
var negativeNumbersIndexs = [];
var i; // for the loop
for (i = 0; i < arr.length; i += 1) {
if (arr[i] < 0){
negativeNumbersIndexs.push(i)
}
}
console.log(negativeNumbersIndexs);
&#13;
答案 3 :(得分:0)
你可以这样使用。
var i;
for(i = 0; i < arr.length; i++) {
if(arr[i] < 0) {
console.log("Index " + i);
}
}
答案 4 :(得分:0)
试试这段代码。
var arr = [1,-5,-6,7,8,9,10,-14,6,-7];
for(var i = 0; i < arr.length; i++) {
if(arr[i] < 0) {
console.log(arr[i] + " is at index: " + i);
}
}
&#13;
答案 5 :(得分:0)
var arr=[1,-5,-6,7,8,9,10,-14,6,-7];
var res = arr.reduce( function(out, a, i) {
return a<0 ? out.concat([i]) : out;
},[]);
console.log( res );
答案 6 :(得分:0)
案例1 :在数组中查找负数索引:
for(var i=0; i < arr.length; i++){
if(arr[i] < 0){
console.log(i);
}
}
Case2 :在字符串数组中查找负数索引:
for(var i=0; i < arr.length; i++){
if(Number(arr[i]) < 0){
console.log(i);
}
}
Case3 :在字符串数组中找到负数“ - ”的索引:
for(var i=0; i < arr.length; i++){
if(arr[i].charAt(0) === "-"){
console.log(i);
}
}
注意强>: 你可以在case2中使用case3的解决方案,它也可以在两种情况下正常工作。