Я пытаюсь выполнить l oop через массив объектов и получить число похожих значений для определенного ключа, когда выполняются определенные условия. Сначала я попытался зациклить один массив (хранилище), но потом понял, что условия должны быть динамическими c. Их нет сейчас. Я вошел в HR и Food, но в идеале хотел бы сделать эти переменные. Таким образом, я зацикливаю значения в массиве C и проверяю данные в хранилище. Если я l oop один раз (имею только одно значение в массиве C), он работает, но более того, он зацикливается слишком много раз и дает мне неправильный вывод. Попытка получить количество всех похожих наградных свойств, так как они соотносятся с данными и обслуживанием. Например, все объекты с данными: «HR» и Service: «Food» будут объединены для отражения: {data: HR, service: Food, DDR: 3}
Код:
var arrayC = ["DDM","DDR"];
var storage = [
{ data: 'CT', service: 'Food',award: 'DDM' },
{ data: 'HR', service: 'Food',award: 'DDM' },
{ data: 'HR', service: 'Food',award: 'DDR' },
{ data: 'HR', service: 'Food',award: 'DDR' },
{ data: 'HR', service: 'Food',award: 'DDR' }
];
var array1=[];
var arrayTest = [];
var jk ={};
function getIt () {
arrayC.forEach(function(key,value){
$.each(storage, function(k,x){
// console.log(v.award);
if(key==x.award&&x.data=="HR"&&x.service=="Food"){
jk[x.award] = jk.hasOwnProperty(x.award) ? arrayTest.push(x.award) : arrayTest.push(x.award),
jk.data = x.data,
jk.service = x.service
}
}); //inside each
});
//array1.push(jk);
return jk;
}
var newThing = getIt();
console.log(newThing);
//Output:
//Object {
// data: "HR",
// DDM: 1,
// DDR: 4,
// service: "Food"
//}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>