【问题标题】:multidimensional array filtering javascript [closed]多维数组过滤javascript [关闭]
【发布时间】:2018-11-15 12:04:40
【问题描述】:

我有一个多维数组

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

我还有一个数组

["apple","pie"]

如何将第一个数组过滤到此结果中:

[
    ["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; 
}

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 这可能是你的解决方案https://stackoverflow.com/questions/9206914/how-to-filter-multidimensional-javascript-array
  • 请注意,Stackoverflow 不是免费的代码编写服务。目的是让您展示您已尝试解决问题的方法,当代码无法按预期工作时,人们会帮助您处理您的代码
  • function sorting(value){ var sorted = new Array(); for(var i =0; i &lt;Object.keys(inputArray); i++){ if (inputArray[i].keys === value){ sorted.push(inputArray[i]); } } return sorted; }
  • @Rauf 你找到不同的答案了吗?

标签: javascript


【解决方案1】:

试试这个:

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);

如果您不想使用 .filter 方法,当然可以使用此方法。

【讨论】:

    【解决方案2】:

    您可以使用Array.filter()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))

    【讨论】:

    • 为什么要对最终结果进行字符串化?
    • 仅供展示,没必要
    猜你喜欢
    • 2021-05-24
    • 2021-11-02
    • 2012-03-01
    • 2019-08-10
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多