如问题中所示(可能没有正确表述),我试图得到一个数组的索引,对于该数组,其每个元素与第二个数组的对应索引元素之间的差值<0.也许下面的代码可以解释更多我想要获得的东西。我成功地使用flatMap()函数获得了所需的索引,但无法使用filter()函数得到它,我认为在这种情况下更合适(总是在这里得到元素,而不是索引)
let array1 = ['524', '587', '034', '816', '65', '7']
let array2 = ['3', '0', '33', '4', '193', '13']
function getSumOfArrays(array1, array2){
let sumArray = array1.map((elem,idx)=>parseFloat(elem) - parseFloat(array2[idx]))
return sumArray
}
function getIdxNegativeDiff1(array1, array2){ //this function works
let negatifIdx1 = array1.flatMap((elem,idx)=>{return parseFloat(elem)-parseFloat(array2[idx]) < 0 ? idx : [] })
return negatifIdx1
}
function getIdxNegativeDiff2(array1, array2){
let negatifIdx2 = array1.filter((elem,idx)=>{ return (parseFloat(elem)-parseFloat(array2[idx]) < 0 ? idx : '')})
return negatifIdx2
}
console.log(array1)
console.log(array2)
console.log(getSumOfArrays(array1, array2))
console.log(getIdxNegativeDiff1(array1, array2))
console.log(getIdxNegativeDiff2(array1, array2))
尝试了许多可能性,但无法通过过滤器找到解决方案。有人能提供解决方案吗