Я новичок в JavaScript и пытаюсь создать два разных массива со значениями из одного основного массива.
Мой основной массив выглядит так:
0: Array(3) [ 2011, 127072.7, 51584 ]
1: Array(3) [ 2012, 125920.3, 59974 ]
2: Array(3) [ 2013, 129305.4, 15468 ]
3: Array(3) [ 2014, 135364, 84554 ]
4: Array(3) [ 2015, 136757, 98754 ]
5: Array(3) [ 2016, 155653.5, 155548 ]
6: Array(3) [ 2017, 164130.5, 284848 ]
И мне нужно создать два массива, сначала выглядя так:
0: Array(2) [ 2011, 127072.7]
1: Array(2) [ 2012, 125920.3]
2: Array(2) [ 2013, 129305.4]
3: Array(2) [ 2014, 135364]
4: Array(2) [ 2015, 136757]
5: Array(2) [ 2016, 155653.5]
6: Array(2) [ 2017, 164130.5]
(первое и второе значение)
а второй вроде:
0: Array(2) [ 2011, 51584]
1: Array(2) [ 2012, 59974]
2: Array(2) [ 2013, 15468]
3: Array(2) [ 2014, 84554]
4: Array(2) [ 2015, 98754]
5: Array(2) [ 2016, 155548]
6: Array(2) [ 2017, 284848]
(первое и третье значение)
Я пытаюсь сращивать, фильтровать и т. Д., Но я не знаю, как начать.
Не нужно писать мне точное решение, а только шаги, как это сделать.
javascript
arrays
Доминик Лев
источник
источник
Ответы:
Вы можете использовать динамический подход и получить все элементы массива после значения ключа для каждого нового массива.
источник
[first, second]
наarray
и вы получите массивы со всеми столбцами данных в виде массивов.r[i] = r[i] || []
вы должны просто использоватьArray.from({length: (data[0]?.length ?? 1) - 1}, () => [])
для начального значения аккумулятораr[i]
существует ли в каждой итерации цикла, тогда как вы можете просто создать необходимые массивы результатов внеreduce
вызова.Вы можете использовать
.map()
для перебора ваших данных и использовать некоторую структуру массива для получения желаемого результата:источник
([year, ...values]) => [year, values[n]]
Вы можете использовать
Array.prototype.forEach
для перебора элементов исходного массива, а затем создавать новые элементы и помещать их в новые массивы:Вывод:
Динамическое создание наших массивов, чтобы решение работало независимо от того, сколько элементов имеют исходные массивы:
Вывод:
источник
Прежде всего, у вас есть массив массивов в начале. Вы можете использовать
map
этот массив для двух разных массивов,destructuring
чтобы получить каждое значение из подмассивов в сжатой форме:источник
Выполните цикл по основному массиву и верните новый массив, используя фиксированные значения индекса для доступа к значениям ваших дочерних массивов.
источник
Вы можете использовать функцию Reduce как следует, которая повторяется только один раз:
источник
Ну вот
источник
Я использовал карту для цикла, два массива, чтобы выдвинуть необходимые значения.
источник
другое решение:
источник
Для общего решения я думаю, что построение массива индексов для столбцов значений дает вам простой способ сопоставления полных данных с массивами, которые вы хотите.
дает вам массив индексов, минус один столбец, который был годом, и
дает вам массив, который вы хотите для столбца n-го значения. Так:
источник
Другое решение для входных массивов общей длины.
источник
Используйте это решение для создания любой общей комбинации из существующего многомерного массива. Вы должны явно передать индекс предметов для выбора, и это делает его универсальным.
источник