-2

I have a multidimensional array

[
  ["apple" , 50],
  ["pie", 45]
  ["steak", 78]
]

I have one another array

["apple","pie"]

How can I filter first array into this result:

[
    ["apple" , 50],
    ["pie", 45]
]

function sorting(value){ 
  var sorted = new Array(); 
  for(var i =0; i <Object.keys(inputArray); i++)
  { 
    if (inputArray[i].keys === value)
    { 
      sorted.push(inputArray[i]); 
    } 
  } 
  return sorted; 
}
Eddie D
  • 1,120
  • 7
  • 16
Rauf
  • 47
  • 7

2 Answers2

1

Try this:

var firstArray = [
  ["apple" , 50],
  ["pie", 45],
  ["steak", 78]
];
var secondArray = ["apple","pie"];

var thirdArray = [];

for (var i = 0; i < firstArray.length; i++) {
  if (secondArray.includes(firstArray[i][0])) {
    thirdArray.push(firstArray[i]);
  }
}
console.log(thirdArray);

This is of course used if you don't want to use the .filter method.

Pang
  • 9,564
  • 146
  • 81
  • 122
Sheshank S.
  • 3,053
  • 3
  • 19
  • 39
0

you can use Array.filter() and Array.includes()

const arr1 = [
  ["apple", 50],
  ["pie", 45],
  ["steak", 78]
]

const arr2 = ["apple", "pie"]

const result = arr1.filter(e => arr2.includes(e[0]))

console.log(JSON.stringify(result))
Taki
  • 17,320
  • 4
  • 26
  • 47