Computer >> Máy Tính >  >> Lập trình >> Javascript

Lấy mảng nhỏ nhất từ ​​một mảng mảng trong JavaScript

Giả sử, chúng ta có một mảng các mảng lồng nhau như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy. Sau đó, hàm sẽ chọn mảng con nhỏ nhất (nhỏ nhất theo nghĩa của một số phần tử được chứa) và trả về nó.

Ví dụ

Mã cho điều này sẽ là -

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

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ [ 'TOP', 'LEFT' ] ]