我正在编写一个函数,它将给定的单词作为参数,并根据这个二维数组返回其字符的位置:
let keyboard = [
["a", "b", "c", "d", "e", "1", "2", "3"],
["f", "g", "h", "i", "j", "4", "5", "6"],
["k", "l", "m", "n", "o", "7", "8", "9"],
["p", "q", "r", "s", "t", ".", "@", "0"],
["u", "v", "w", "x", "y", "z", "_", "/"],
];
function tvRemote(word) {
let arr = [...word];
let position = [];
for (let rows = 0; rows < keyboard.length; rows++) {
for (let cols = 0; cols < keyboard[rows].length; cols++) {
for (i of arr) {
keyboard[rows][cols] === i ? position.push([i, rows, cols]) : null;
}
}
}
return position;
}
console.log( tvRemote("your") );
我想获取位置以执行一些计算,但是当将行和列推送到位置数组时,返回似乎得到了排序。
预期输出:
[ [ 'y', 4, 4 ], [ 'o', 2, 4 ], [ 'u', 4, 0 ], [ 'r', 3, 2 ] ]
我得到了什么:
[ [ 'o', 2, 4 ], [ 'r', 3, 2 ], [ 'u', 4, 0 ], [ 'y', 4, 4 ] ]
有谁知道发生了什么?如果是这样,我该如何防止自动排序?