подсчитать расстояние строки / число в массивах - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь получить вашу помощь, чтобы найти логику этого, как я могу посчитать расстояние до цели в массиве

допустим, у меня есть массив

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

я хочу найти расстояние от "b" до "x"? как насчет того, если этот массив также имеет пустую строку?

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

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Разностный подход с использованием массива в качестве бесконечного массива.

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'));
0 голосов
/ 06 ноября 2018

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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...