Мне нужно получить счет существования идентификатора, сравнив его с другим json.однако в некотором смысле я успешен, но для немногих чисел это становится неправильным счетом.
var outputProducts = [
{ outputId:'1', inputId: '3', opName: "outMacy" },
{ outputId:'2', inputId: '3', opName: "outMacy2" },
{ outputId:'3', inputId: '3', opName: "outMacy3" },
{ outputId:'4', inputId: '235', opName: "EXPENCE" },
{ outputId:'5', inputId: '235', opName: "opEXPENCE" },
{ outputId:'6', inputId: '235', opName: "opEXPENCE1" },
{ outputId:'8', inputId: '235', opName: "opEXPENCE3" },
{ outputId:'7', inputId: '215', opName: "JCPenny" }
];
вот так выглядит мой json, из которого я должен получить
temp = [
{ name: "3", shownName: 3 },
{ name: "215", shownName: 1 },
{ name: "235", shownName: 4 }
]
, вместо этого он дает мне
temp = [
{ name: "3", shownName: 7 },
{ name: "215", shownName: 1 },
{ name: "235", shownName: 4 }
]
я чувствую, что он выглядит3 во всем json таким образом он получает счетчик 235, в котором он имеет 3, и показывает его как 7 вместо 3
, вот мой плункер (весь json не виден из-за ошибки PUSH, однако вы можетесм. сгенерированный временный JSON с неправильным счетчиком имени: «3», показано: 7)
https://plnkr.co/edit/aIdlWUS7UFb91hKC4nqx?p=preview
Вот мой код
var outputProducts = [
{ outputId:'1', inputId: '3', opName: "outMacy" },
{ outputId:'2', inputId: '3', opName: "outMacy2" },
{ outputId:'3', inputId: '3', opName: "outMacy3" },
{ outputId:'4', inputId: '235', opName: "EXPENCE" },
{ outputId:'5', inputId: '235', opName: "opEXPENCE" },
{ outputId:'6', inputId: '235', opName: "opEXPENCE1" },
{ outputId:'8', inputId: '235', opName: "opEXPENCE3" },
{ outputId:'7', inputId: '215', opName: "JCPenny" }
];
$scope.outputProducts = outputProducts;
var keysCount, copyOfOutputData, keysCount2, uniqueInputFiles=[], outputFilesCount=[];
keysCount = Object.keys(outputProducts).length;
console.log("$scopes.", $scope.outputProducts);
for (i = 0; i < keysCount; i += 1) {
if (uniqueInputFiles.indexOf(outputProducts[i].inputId) === -1) {
uniqueInputFiles.push(outputProducts[i].inputId);
}
}
console.log("uniqueInputFiles", uniqueInputFiles);
copyOfOutputData = angular.copy(uniqueInputFiles);
keysCount2 = Object.keys(copyOfOutputData).length;
for (i = 0; i < keysCount2; i += 1) {
outputFilesCount = $filter('filter')( outputProducts, { inputId: copyOfOutputData[i] } ).length;
temp = {
name : copyOfOutputData[i],
shownName: outputFilesCount
};
console.log("temp", temp)
$scope.inputFilesWithCount.push(temp);
}
Любая помощьценится