查找二维数组中最长的元素
Find the longest Elements in a 2d array
我目前正在使用 6 行长的二维数组。
现在我需要过滤最长的行以使用它们。但是我不知道如何过滤最短的元素
例如:
0: (3) ['karo11', 'karo6', 'kreuz13']
1: (2) ['pik6', 'pik13']
2: ['karo13']
3: (2) ['herz11', 'kreuz6']
4: ['herz6']
5: (2) ['kreuz11', 'pik11']
这是我的数组。现在我需要过滤掉第 2 行和第 4 行。但是我应该怎么做呢?
注意。数组不是静态的,所以行的长度是可变的,每次我 运行 代码
都会改变
一种方法可能是获取每个数组的长度,找到最小长度,然后过滤长度不等于最小值的数组。
如果您需要过滤掉最大长度,请改用 Math.max()
。
let arr = [
['karo11', 'karo6', 'kreuz13'],
['pik6', 'pik13'],
['karo13'],
['herz11', 'kreuz6'],
['herz6'],
['kreuz11', 'pik11']
]
let min = Math.min(...arr.map(i => i.length))
let result = arr.filter(i => i.length !== min)
console.log(result)
您可以使用 Math.max()
和 Math.min()
从数组中获取最大和最小长度元素,然后您可以根据需要过滤掉它。
演示:
const inputArr = [
['karo11', 'karo6', 'kreuz13'],
['pik6', 'pik13'],
['karo13'],
['herz11', 'kreuz6'],
['herz6'],
['kreuz11', 'pik11']
];
let shortest = inputArr.filter(i => i.length !== Math.max(...inputArr.map(i => i.length)))
let longest = inputArr.filter(i => i.length !== Math.min(...inputArr.map(i => i.length)))
console.log(shortest)
console.log(longest)
我目前正在使用 6 行长的二维数组。
现在我需要过滤最长的行以使用它们。但是我不知道如何过滤最短的元素
例如:
0: (3) ['karo11', 'karo6', 'kreuz13']
1: (2) ['pik6', 'pik13']
2: ['karo13']
3: (2) ['herz11', 'kreuz6']
4: ['herz6']
5: (2) ['kreuz11', 'pik11']
这是我的数组。现在我需要过滤掉第 2 行和第 4 行。但是我应该怎么做呢?
注意。数组不是静态的,所以行的长度是可变的,每次我 运行 代码
都会改变一种方法可能是获取每个数组的长度,找到最小长度,然后过滤长度不等于最小值的数组。
如果您需要过滤掉最大长度,请改用 Math.max()
。
let arr = [
['karo11', 'karo6', 'kreuz13'],
['pik6', 'pik13'],
['karo13'],
['herz11', 'kreuz6'],
['herz6'],
['kreuz11', 'pik11']
]
let min = Math.min(...arr.map(i => i.length))
let result = arr.filter(i => i.length !== min)
console.log(result)
您可以使用 Math.max()
和 Math.min()
从数组中获取最大和最小长度元素,然后您可以根据需要过滤掉它。
演示:
const inputArr = [
['karo11', 'karo6', 'kreuz13'],
['pik6', 'pik13'],
['karo13'],
['herz11', 'kreuz6'],
['herz6'],
['kreuz11', 'pik11']
];
let shortest = inputArr.filter(i => i.length !== Math.max(...inputArr.map(i => i.length)))
let longest = inputArr.filter(i => i.length !== Math.min(...inputArr.map(i => i.length)))
console.log(shortest)
console.log(longest)