Я работаю над формой расчета, который генерирует многомерный массив с двумя значениями [выбор], что-то вроде:Javascript: Сравните два многомерные массивы получить значение
[[10,0.5], [ 18,0.75]]
Второй массив [поиск-таблица] содержит ряд значений:
[ "10", "0,5", "0,1"], [ "12", "0,5", «1,1»], ["14", "0,5", "3,1"], ["16", "0,5", "5.1"], ["18", "0.5", "7.1"], ["20 "," 0,5 "," 9,6 "], [" 22 "," 0,5 "," 11,6 "] ... [" 18 "," 0,75 "," 9,1 "]
Я пытаясь сопоставить индексы [0], [1] в массиве [selection] с одинаковыми значениями индекса в массиве [lookup-table].
["10", "0,5", "0,1"] ... ["18", "0,75", "9,1"]
Как только это будет сделано, я хотел бы для получения значения для значения индекса [x] [2] в таблице [lookup-table]:
["10", "0,5", "0,1"] ... ["18", " 0,75 ", " 9.1 "]
Я нашел здесь очень полезный и похожий вопрос: JavaScript - Compare two multidimensional arrays
И в консоли, похоже, правильно идентифицируют совпадения в индексе массива.
Я использую более или менее аналогичные функции:
function find(haystack, needles) {
var lookupValue = [];
//Iterate through all elements in first array
for(var x = 0; x < haystack.length; x++){
//Iterate through all elements in second array
for(var y = 0; y < needles.length; y++){
/*This causes us to compare all elements
in first array to each element in second array
Since haystack[x] stays fixed while needles[y] iterates through second array.
We compare the first two indexes of each array in conditional
*/
if(haystack[x][0] == needles[y][0] && haystack[x][1] == needles[y][1]){
console.log("match found");
console.log("Array 1 element with index " + x + " matches Array 2 element with index " + y);
//Retrieve the price for the high and low lookup values and store in array
lookupValue = haystack[x][2];
}
}
}
return lookupValue;
}
var totalResult = find(lookupTable, flushGrowthArray).toString();
Однако при попытке получить стог [х] [2] индексируются значение из матчей в [перекодировки-таблицы], для по какой-то причине я возвращаю только одно значение.
Я думаю, что это, вероятно, очень простая ошибка; Что я делаю не так? Я ценю любые новые идеи.
Вы заменяете 'lookupValue' каждым найденным совпадением, вы не нажимаете совпадение на массив. – Barmar
А, это имеет смысл. И причина, по которой я получаю только последнее полученное значение. – tnog