计算数组中的距离 strings/number

count distance strings/number in arrays

我正试图得到你的帮助来找到这个逻辑,我怎样才能计算到数组中目标的距离

假设我有一个数组

let arr = ["a", "b", "c", "d", "x" , "z" ]

我想计算 "b" 到 "x" 的距离? 如果那个数组也有空字符串怎么样?

like ["a", "b", "c", " ", "d", "x" , "z" ]

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'))

将数组用作无限数组的不同方法。

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'));