我想比較兩個陣列,然后在第一個陣列小于第二個陣列時回傳索引。但是如果第一個陣列的起始值大于第二個陣列,則必須跳過直到第一個陣列的值小于第二個陣列。例如
case1: 這必須回傳 index = 2 (exampleArr1 < exampleArr2 at index =2)
var exampleArr1 = [15,9,7,5,3,1];
var exampleArr2 = [2,6,8,12,17,22];
function compareArray(exampleArr1,exampleArr2){
...
return result
}
case2:這必須回傳 index = 6(exampleArr1 < exampleArr2 at index =6)
var exampleArr1 = [1,2,4,5,15,9,7,5,3];
var exampleArr2 = [2,3,5,6,2,6,8,12,17];
function compareArray(exampleArr1,exampleArr2){
...
return result
}
對此的任何建議或指導將不勝感激,謝謝。
uj5u.com熱心網友回復:
一個簡單的for 回圈就足夠了。在我們的回圈中,我們已經有了索引,所以我們只需將這個索引處的第一個陣列與這個索引處的第二個陣列進行比較。
const compareArray = (arr1, arr2) => {
let startIndex = 0
if (arr1[0] < arr2[0]) {
// find the index from arr1 that is greater than arr2
startIndex = arr1.findIndex((a, index) => a > arr2[index])
}
for (let i = startIndex; i < arr1.length; i ) {
if (arr1[i] < arr2[i]) {
return i
}
}
}
const exampleArr1 = [15,9,7,5,3,1]
const exampleArr2 = [2,6,8,12,17,22]
const exampleArr3 = [1,2,4,5,15,9,7,5,3]
const exampleArr4 = [2,3,5,6,2,6,8,12,17]
console.log(compareArray(exampleArr1, exampleArr2))
console.log(compareArray(exampleArr3, exampleArr4))
uj5u.com熱心網友回復:
請在您的函式中使用findIndex方法,例如
var exampleArr1 = [15,9,7,5,3,1];
var exampleArr2 = [2,6,8,12,17,22];
function compareArray(exampleArr1,exampleArr2) {
if (exampleArr1[0] < exampleArr2[0]) {
exampleArr1 = exampleArr1.slice(1);
}
return exampleArr1.findIndex(function(e, i) { return exampleArr2[i] > e; });
}
console.log(compareArray(exampleArr1, exampleArr2));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/402022.html
標籤:javascript 数组
上一篇:物件陣列中每天的鍵總和
