从JavaScript中的数组中获取最小的数组

假设我们有一个像这样的嵌套数组数组-

const arr = [
   ["LEFT", "RIGHT", "RIGHT", "BOTTOM", "TOP"],
   ["RIGHT", "LEFT", "TOP"],
   ["TOP", "LEFT"]
];

我们需要编写一个包含一个这样的数组的JavaScript函数。然后,该函数应选择最小的子数组(就所包含的多个元素而言,最小的子数组)并返回它。

示例

为此的代码将是-

const arr = [
   ["LEFT", "RIGHT", "RIGHT", "BOTTOM", "TOP"],
   ["RIGHT", "LEFT", "TOP"],
   ["TOP", "LEFT"]
];
const findShortest = (arr = []) => {
   const res = arr.reduce((acc, val, ind) => {
      if (!ind || val.length < acc[0].length) {
         return [val];
      };
      if (val.length === acc[0].length) {
         acc.push(val);
      };
      return acc;
   }, []);
   return res;
};
console.log(findShortest(arr));

输出结果

控制台中的输出将是-

[ [ 'TOP', 'LEFT' ] ]