Более простой способ вернуть первые два индекса вложенного массива? - PullRequest
0 голосов
/ 06 ноября 2018

Есть ли более простой способ вернуть первые два индекса массива, кроме создания цикла for? Возможно с lodash?

    
const animals = [['ant', 'bison', 'camel', 'duck', 'elephant'], ['lion','zebra','tiger']];

for (let i = 0; i < animals.length; i++){ 
   console.log(animals[i].slice(0,2));
}

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Без lodash, вы могли бы просто отобразить ...

const animals = [['ant', 'bison', 'camel', 'duck', 'elephant'], ['lion','zebra','tiger']];

const first2 = animals.map(a => a.slice(0, 2))

console.log(first2)
0 голосов
/ 06 ноября 2018

Lodash представляет интересный метод invokeMap(), который позволяет коду быть самым коротким:

console.log(_.invokeMap(sourceArray, 'slice', 0, 2))

Но, возможно, использование классического .map() лучше для удобочитаемости (поскольку оно хорошо известно), как упомянуто выше

0 голосов
/ 06 ноября 2018

Вы можете использовать map, чтобы преобразовать массив в единицу с правильными срезами:

const animals = [['ant', 'bison', 'camel', 'duck', 'elephant'], ['lion','zebra','tiger']];

console.log(animals.map(a => a.slice(0, 2)));
...