根据字符串变量将二维数组项添加到新数组

3

Received是一个数组的输入:

var fruits = [["fuji", "apple"], ["gala", "apple"], ["navel", "orange"], ["valencia", "orange"]]

我创建了空数组:

var apple = [] 
var orange = []

我想通过获取第二个数组项中的字符串并将其推送到数组中,将水果按照它们的数组分类排序。有没有一种方法可以将fruits[i][1]中的字符串值与同名的数组(apple/orange)相关联?
for (var i = 0; i < fruits.length; i++) {
  fruits[i][1].push(fruits[i])  // not a thing
  }

期望输出:

apple == [["fuji", "apple"], ["gala", "apple"]]
orange == [["navel", "orange"], ["valencia", "orange"]]
2个回答

1
你可以使用 Array.prototype.filter()
var apple = fruits.filter((ele) => ele[1] === "apple");
var orange = fruits.filter((ele) => ele[1] === "orange");

0

使用项目中的第二个元素编写sort compare方法。

var fruits = [
  ["fuji", "apple"],
  ["gala", "apple"],
  ["navel", "orange"],
  ["valencia", "orange"],
];

const sorted = (arr, key) => {
  return [...arr].sort(([, a], [, b]) => {
    return a === key ? -1 : 1;
  });
};

console.log(sorted(fruits, "apple"));
console.log(sorted(fruits, "orange"));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接