Перейти к содержимому

Как вернуть массив объектов js

  • автор:

как вернуть массив объектов с нужными полями объектов js (name, team,goals)

Судя по заголовку, вам нужно из одного массива объектов сделать другой с более ограниченным набором полей. Если я правильно понимаю, можно так:

function getGoalsStat(players)< return players.map( (< name, team, goals >) => (< name, team, goals >) ); > // examples const players = [ < name: 'Jason Mount', birthdate: '19.12.1993', country: 'Deutschland', number: '21', team: 'Manchester United', position: 'MF', goals: 4, >, < name: 'Jason Mount', birthdate: '01.01.2001', country: 'Deutschland', number: '16', team: 'Manchester United', position: 'MF', goals: 0, >, < name: 'Finne Bard', birthdate: '13.02.1995', country: 'Norwegen', number: '26', position: 'FW', team: 'Fulham United', goals: 1, >, < name: 'Gerhardt Yannick', birthdate: '13.03.1994', country: 'Deutschland', number: 31, position: 'MF', team: 'Liverpool', goals: 8, >, ]; console.log(getGoalsStat(players));

Если нет, приведите пример желаемого результата.

Отслеживать
ответ дан 4 июл 2021 в 16:51
vsemozhebuty vsemozhebuty
14k 2 2 золотых знака 11 11 серебряных знаков 20 20 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Курсы javascript

Всем привет! Так как я не силен в javascript нужна ваша помощь. Не подскажите как получить объект из массива объектов по одному из его свойств?

04.02.2018, 16:52
Регистрация: 27.05.2010
Сообщений: 33,031
Rmydar,
https://javascript.ru/forum/misc/724. tml#post476834
04.02.2018, 17:09
Новичок на форуме
Регистрация: 04.02.2018
Сообщений: 4

Прикольно только как это мне поможет? У меня есть массив объектов, каждый объект имеет свойство id со своим значением, мне нужно получить объект с нужным мне id из этого массива. Пробовал циклом не выходит:

for (var i=0, iLen=arr.length; i else < object = "Value not found"; >> console.log(object);

У меня всегда «Value not found», я не силен в javascript, ну может кто подскажет что я делаю не так?
04.02.2018, 17:30
Новичок на форуме
Регистрация: 18.01.2018
Сообщений: 7

В твоем случае нужно после найденного совпадения делать break.

var object = "Value not found"; for (var i=0, iLen=arr.length; i > console.log(object);
var object = arr.find(function(elem) < return elem.id === id; >console.log(object);

04.02.2018, 18:09
Новичок на форуме
Регистрация: 04.02.2018
Сообщений: 4

Странно но не выходит не так не так… При этом если в консоль вывести один объект, и значение переменной id, то и значение свойства id объекта, и значение переменой id равны, но результат сравнения дает ложь. Скажите пожалуйста javascript сильно типизированный язык, так как значение переменной id я получаю из тега, и если я правильно понимаю оно имеет строковое значение, значение в массиве числовое, в этом может быть проблема?

04.02.2018, 18:16
Новичок на форуме
Регистрация: 04.02.2018
Сообщений: 4
Блин оператор, ну как же так я лоханулся, всю голову сломал, Сори ребят что отнял у вас время.
« Перестают работать слайдеры. | как дописать калькулятор Срочно!! »

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить ссылку на объект, содержащий DataURL? ssadfaf Общие вопросы Javascript 0 19.01.2015 11:20
Проблема с наполнением массива объектов — последний элемент заменяет собой все. Джангар AJAX и COMET 5 18.12.2014 22:54
Как найти точки соприкосновения двух объектов в RaphaelJS Fatalityap Библиотеки/Тулкиты/Фреймворки 3 03.08.2012 16:33
Как получить значения вышестоящих элементов дерева TreeStore ? Allan Stark ExtJS 1 31.07.2012 16:48
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10

получить объект из массива js

Для получения объекта из массива в JavaScript можно использовать метод find() . Он принимает функцию обратного вызова, которая будет вызвана для каждого элемента массива. Функция должна вернуть true , если элемент соответствует заданному условию, и false в противном случае. Метод find() возвращает первый элемент массива, для которого функция вернула true .

const cars = [  make: 'Toyota', model: 'Camry', year: 2018 >,  make: 'Honda', model: 'Accord', year: 2019 >,  make: 'Tesla', model: 'Model S', year: 2020 >, ]; const car = cars.find(function (item)  return item.make === 'Honda'; >); console.log(car); // 

В этом примере мы создали массив объектов cars , затем использовали метод find() для поиска объекта, у которого свойство make равно ‘Honda’ . Метод find() вернул первый объект, который соответствует этому условию.

15 методов работы с массивами в JavaScript

Массивы в JavaScript — это специальный тип данных, который предназначен для хранения коллекции элементов (часто однотипных). У массивов есть встроенные свойства и методы для добавления, удаления и получения элементов, а также для их перебора. Любому JavaScript-разработчик стоит хорошо знать эти методы, так как они здорово облегчают работу.

В этой статье мы разберем 15 встроенных методов объекта Array.prototype:

Практически все они принимают в качестве параметра функцию-коллбэк, которая вызывается последовательно для разных элементов массива. Для удобства во всех примерах мы будем использовать стрелочные функции с кратким синтаксисом:

// вместо такого кода myAwesomeArray.some(test => < if (test === "d") < return test >>) // мы будем использовать такой myAwesomeArray.some(test => test === "d")

Коллбэк в большинстве случаев принимает три параметра: текущий элемент массива, его индекс в исходном массиве и сам массив. В примерах мы используем только первый параметр (сам элемент), но важно помнить и про остальные.

forEach()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: undefined

Этот метод просто выполняет функцию-коллбэк для каждого элемента в массиве.

const myAwesomeArray = [ < id: 1, name: "john" >, < id: 2, name: "Ali" >, < id: 3, name: "Mass" >, ] myAwesomeArray.forEach(element => console.log(element.name)) // john // Ali // Mass

find()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: первый подходящий элемент массива или undefined

Функции-коллбэк должна вернуть true , если элемент соответствует определенным критериями, или false , если не соответствует. Если вернулся результат true , итерация прекращается. Результатом работы метода становится найденный элемент.

const myAwesomeArray = [ < id: 1, name: "john" >, < id: 2, name: "Ali" >, < id: 3, name: "Mass" >, ] myAwesomeArray.find(element => element.id === 3) // myAwesomeArray.find(element => element.id === 7) // undefined

findIndex()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: индекс первого подходящего элемента массива или -1

Работает аналогично методу find, но возвращает не сам элемент, а его индекс в исходном массиве.

const myAwesomeArray = [ < id: 1, name: "john" >, < id: 2, name: "Ali" >, < id: 3, name: "Mass" >, ] myAwesomeArray.findIndex(element => element.id === 3) // 2 myAwesomeArray.findIndex(element => element.id === 7) // -1

some()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: true или false

Этот метод используется, чтобы найти в массиве хотя бы один элемент, который соответствует определенному условию. Если функция-коллбэк вернет true , то итерация по элементам остановится и весь метод вернет true . Если для всех элементов вернулось false , то весь метод вернет false .

const myAwesomeArray = ["a", "b", "c", "d", "e"] myAwesomeArray.some(test => test === "d") // true

every()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: true или false

Этот метод предназначен, чтобы убедиться, что каждый элемент массива соответствует определенному условию. Он возвращает true только в случае, если функция-коллбэк вернет true для каждого элемента, в ином случае будет false .

const myAwesomeArray = ["a", "b", "c", "d", "e"] myAwesomeArray.every(test => test === "d") // false const myAwesomeArray2 = ["a", "a", "a", "a", "a"] myAwesomeArray2.every(test => test === "a") // true

includes()

Параметры метода: значение для сравнения, индекс, с которого нужно начинать поиск (необязательный, по умолчанию — 0)

Результат: true или false

Работает аналогично методу some, то есть проверяет, есть ли в массиве хоть один подходящий под условие элемент. Однако в отличие от some принимает не функцию, а конкретное значение для сравнения. Сравнение строгое.

const myAwesomeArray = [1, 2, 3, 4, 5] myAwesomeArray.includes(3) // true myAwesomeArray.includes(8) // false myAwesomeArray.includes('3') // false

reverse()

Результат: «перевернутый массив»

Мутация исходного массива: да, «переворот» массива происходит «на месте», без создания копии

Метод обращает порядок следования элементов массива — «переворачивает» его. Последний элемент становится первый, предпоследний — вторым и т. д.

const myAwesomeArray = ["e", "d", "c", "b", "a"] myAwesomeArray.reverse() // ['a', 'b', 'c', 'd', 'e']

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: новый массив такой же длины, состоящий из преобразованных элементов старого

Мутация исходного массива: нет

Функция-коллбэк получает элемент исходного массива и должна вернуть преобразованный элемент для нового массива.

const myAwesomeArray = [5, 4, 3, 2, 1] myAwesomeArray.map(x => x * x) // [25, 16, 9, 4, 1]

filter()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: новый массив, состоящий только отобранных элементов исходного

Мутация исходного массива: нет

Функция-коллбэк должна «фильтровать» элементы исходного массива, возвращая для них true (элемент удовлетворяет условию и должен быть в результирующем массиве) или false (элемент не удовлетворяет условию).

const myAwesomeArray = [ < id: 1, name: "john" >, < id: 2, name: "Ali" >, < id: 3, name: "Mass" >, < id: 4, name: "Mass" >, ] myAwesomeArray.filter(element => element.name === "Mass") // [ , ]

reduce()

Параметры метода: функция-коллбэк, начальное значение аккумулятора

Параметры функции-коллбэка: текущее накопленное значение, текущий элемент массива, его индекс в исходном массиве, сам массив

Результат: «накопленное значение» аккумулятора

Коллбэк этого метода при итерации по массиву получает не только текущий элемент, но и «накопленное значение» — accumulator. Функция может изменять его в зависимости от значения элемента и обязательно должна вернуть новое «накопленное значение». Результатом работы всего метода является именно аккумулятор, измененный во всех коллбэках.

Вторым аргументом метода является начальное значение аккумулятора, которое будет передано в коллбэк для самого первого элемента массива. Если это значение не указано, то им станет первый элемент массива, а перебор начнется со второго.

const myAwesomeArray = [1, 2, 3, 4, 5] myAwesomeArray.reduce((accumulator, value) => accumulator * value) // 1 * 2 * 3 * 4 * 5 = 120

sort()

Параметры метода: функция-компаратор для сравнения двух значений

Результат: отсортированный массив

Мутация исходного массива: да, сортировка происходит «на месте» без создания копии массива

Функция-компаратор получает элементы исходного массива попарно (порядок сравнения зависит от используемого алгоритма сортировки). Если первый элемент условно «меньше» второго, то есть должен идти в отсортированном массиве перед ним, компаратор должен вернуть любое отрицательное число. Если первый элемент «больше» второго, то нужно вернуть положительное число. Если же элементы условно «равны», то есть их порядок в отсортированном массиве не важен, функция должна вернуть 0.

const myAwesomeArray = [5, 4, 3, 2, 1] // Сортировка по возрастанию myAwesomeArray.sort((a, b) => a - b) // [1, 2, 3, 4, 5] // Сортировка по убыванию myAwesomeArray.sort((a, b) => b - a) // [5, 4, 3, 2, 1]

concat()

Параметры метода: массивы для объединения с исходным (количество параметров не ограничено)

Результат: новый массив, состоящий из элементов всех полученных массивов

Мутация исходного массива: нет

Метод просто объединяет несколько массивов в один

const myAwesomeArray = [1, 2, 3, 4, 5] const myAwesomeArray2 = [10, 20, 30, 40, 50] myAwesomeArray.concat(myAwesomeArray2) // [1, 2, 3, 4, 5, 10, 20, 30, 40, 50]

fill()

Параметры метода: значение, которым нужно заменить текущие элементы массива, индекс элемента, с которого начинается замена (необязательный), индекс элемента, которым заканчивается замена (необязательный, не включительно).

Результат: Массив с измененными значениями.

Мутация исходного массива: да

Этот метод заменяет текущие элементы массива на указанное значение — «заполняет» массив указанным значением.

const myAwesomeArray = [1, 2, 3, 4, 5] // Первый аргумент (0) - само значение для заполнения // Второй аргумент (1) - индекс элемента, с которого нужно начать замену // Третий аргумент (3) - индекс элемента, на котором нужно закончить замену myAwesomeArray.fill(0, 1, 3) // [1, 0, 0, 4, 5]

flat()

Параметры метода: глубина разворачивания (по умолчанию 1)

Результат: новый массив, состоящий из элементов развернутых подмассивов

Мутация исходного массива: нет

Если в вашем исходном массиве есть вложенные массивы, то этот метод «развернет» их, уменьшив «мерность».

const myAwesomeArray = [[1, 2], [3, 4], 5] myAwesomeArray.flat() // [1, 2, 3, 4, 5] const myAwesomeArray2 = [[[1, 2], [3, 4]], 5] myAwesomeArray2.flat(2) // [1, 2, 3, 4, 5]

flatMap()

Параметры метода: функция-коллбэк, значение this для коллбэка (необязательный)

Параметры функции-коллбэка: текущий элемент массива, его индекс в исходном массиве, сам массив

Комбинация методов flat() и map(). При этом сначала отрабатывает map — к каждому элементу применяется функция-коллбэк, которая должна вернуть его модифицированную версию. После этого отрабатывает flat с глубиной 1- мерность массива уменьшается.

const myAwesomeArray = [[1], [2], [3], [4], [5]] myAwesomeArray.flatMap(arr => arr * 10) // [10, 20, 30, 40, 50] // то же самое с flat() + map() myAwesomeArray.map(arr => arr * 10).flat() // [10, 20, 30, 40, 50]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *