Есть массив:
let mas =["обьект1","Обьект2","Обьетк3","Обьект4"];
И массив обьектов
let mas1=[
{
nameObj:'обьект4',
value: 14
},
{
nameObj:'обьект1',
value: 16
},
{
nameObj:'обьект2',
value: 17
}
];
Как выдергивать из второго массива именно то значение value, свойство nameObj которого совпадает со значение i-го элемента первого массива.
В цикле перебираем элементы массива:
for (let i= 0; i < mas.length; i++) {
a=?
//console.log(a);
}
т.е. первый элемент обьект1, значит выводиться должно 16 и т.д.
let mas =["обьект1","Обьект2","Обьетк3","Обьект4"];
let mas1=[
{
nameObj:'обьект4',
value: 14
},
{
nameObj:'обьект1',
value: 16
},
{
nameObj:'обьект2',
value: 17
}
];
for (let i = 0; i < mas.length; i++) {
var a = mas1.find(item => item.nameObj == mas[i]);
console.log(a? a.value : "not found");
}
Цикл for
для подобных целей менее удобен, чем метод find
.
// решение (функция поиска в массиве объектов по значению св-ва)
const findObjectByProp = (objArr, propName, propVal) => {
return objArr.find(o => o[propName] === propVal);
};
// использование
const mas = ['объект1', 'объект2', 'объект3', 'объект4'];
const mas1 = [
{ nameObj: 'объект4', value: 14 },
{ nameObj: 'объект1', value: 16 },
{ nameObj: 'объект2', value: 17 }
];
let i = 1;
const found = findObjectByProp(mas1, 'nameObj', mas[i]);
if (found)
console.log(found.value);
А если надо преобразовать массив значений одного свойства в массив значений другого, то это можно за 2 прохода (один проход на каждый входной массив) - вот так:
const mapToAnotherProp = (valArr, srcProp, objArr, dstProp) => {
const dict = objArr.reduce(
(rslt, obj) => rslt.set(obj[srcProp], obj[dstProp])
, new Map());
return valArr.map(val => dict.get(val));
};
const mas = ['объект1', 'объект2', 'объект3', 'объект4'];
const mas1 = [
{ nameObj: 'объект4', value: 14 },
{ nameObj: 'объект1', value: 16 },
{ nameObj: 'объект2', value: 17 }
];
const result = mapToAnotherProp(mas, 'nameObj', mas1, 'value');
console.log(result);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Ребята, доконает меня эта гугла)) Не хочет прибавлять число хоть ты тресниЯ пытаюсь из ячейки достать 45 и прибавить 4
Я вывожу массив с помощью mapПри двойном клике на элемент, я хочу, чтобы он добавился в массив и отренденился снизу списка
В общем идея такая, имеются имеются radiobutton'ы нужно нажать выбрать ответы во всех вопросах, по нажатию на кнопку должно проверяться правильные...