计算距离字符串/数组中的数字

时间:2018-11-06 08:21:57

标签: javascript arrays loops for-loop distance

我正试图在您的帮助下找到逻辑,我如何计算到数组中目标的距离

让我说我有一个数组

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

我想找到距离“ b”到“ x”的距离? 如果该数组也有空字符串怎么办?

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

2 个答案:

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