我正试图在您的帮助下找到逻辑,我如何计算到数组中目标的距离
让我说我有一个数组
let arr = ["a", "b", "c", "d", "x" , "z" ]
我想找到距离“ b”到“ x”的距离? 如果该数组也有空字符串怎么办?
like ["a", "b", "c", " ", "d", "x" , "z" ]
答案 0 :(得分:3)
let input = ["a", "b", "c", " ", "d", "x" , "z" ]
function findDistance(source, target){
return Math.abs(input.indexOf(target) - input.indexOf(source))
}
console.log(findDistance('b','x'))
答案 1 :(得分:1)
将数组用作无穷大数组的一种差异方法。
function findDistance(array, a, b){
var delta = array.indexOf(a) - array.indexOf(b);
return Math.min(
Math.abs(delta),
Math.abs(delta + array.length),
Math.abs(delta - array.length)
);
}
let input = ["a", "b", "c", " ", "d", "x" , "z"];
// ^ ^
// 1 5 |1 - 5| -> 4
// 1 5 |1 - 5 + 7| -> 3 <==
// 1 5 |1 - 5 - 7| -> -11
console.log(findDistance(input, 'b', 'x'));
console.log(findDistance(input, 'x', 'b'));