Wyciągnięcie liczb z listy

Wyciągnięcie liczb z listy
G8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

Witam,

Mam listę zawierającą kolejne listy. Każda z nich składa się z tekstu i liczby.

Kopiuj
const numbers = []
const items = [['Item1', 10], ['Item2', 5], ['Item3', 7]]

Muszę zrobić listę numbers z wszystkich liczb zawierających się w items. Chciałem zrobić items.forEach() + if + numbers.push() ale items zawiera kolejne listy i nie wiem jak to zrobić.

NI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
3

Jak masz tablice tablic albo tablicę obiektów to najlepiej sobie przejść po tablicy i "zdestrukturyzować" dane.
ewentualnie jako, że każdy item to tablica to numer możesz wyciągnąć poprzez item[1].

Kopiuj
items.forEach(item => {
  const [_, number] = item;
  numbers.push(number);
});
Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
3
Kopiuj
const numbers = [];
items.forEach(item => numbers.push(item[1]));

albo

Kopiuj
const items = [['Item1', 10], ['Item2', 5], ['Item3', 7]]
const numbers = items.map(item => item[1]);

albo

Kopiuj
const items = [['Item1', 10], ['Item2', 5], ['Item3', 7]];
const numbers = [];

for (const [name, value] of items) {
  numbers.push(value);
}
G8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

Dzięki za odpowiedzi. Znalazłem jeszcze jeden sposób:

Kopiuj
 const numbers = items.flat().filter(element => typeof element === 'number');
LukeJL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8488
1

Tutaj jeszcze rozwiązanie, które ignoruje duplikaty:

Kopiuj
const items = [['Item1', 10], ['Item2', 5], ['Item3', 7], ['Item4', 10], ['Item5', 11]];
const result = Array.from(new Set(items.map(item => item[1]))); 

czyli result będzie równe [ 10, 5, 7, 11 ] zamiast [ 10, 5, 7, 10, 11 ]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.