Javascript 如果对象数组中不存在值,则按零

Javascript 如果对象数组中不存在值,则按零,javascript,angularjs,Javascript,Angularjs,嗨,我有一个对象数组。请检查下面的代码。我有三个值“A”,“B”,“C”。例如,如果B值在孟买不存在,我想推0 //代码在这里 var c=angular.module('myApp',['angular.filter'])) c、 控制器('myCtrl',函数($scope,$filter){ $scope.finalArray=[]; $scope.data=[{ “id”:“1”, “地点”:“孟买”, “姓名”:“A”, “值”:“10” }, { “id”:“4”, “地点”:“

嗨,我有一个对象数组。请检查下面的代码。我有三个值“A”,“B”,“C”。例如,如果B值在孟买不存在,我想推0

//代码在这里
var c=angular.module('myApp',['angular.filter']))
c、 控制器('myCtrl',函数($scope,$filter){
$scope.finalArray=[];
$scope.data=[{
“id”:“1”,
“地点”:“孟买”,
“姓名”:“A”,
“值”:“10”
}, {
“id”:“4”,
“地点”:“孟买”,
“名称”:“B”,
“值”:“20”
}, {
“id”:“4”,
“地点”:“德里”,
“名称”:“B”,
“值”:“77”
}, {
“id”:“5”,
“地点”:“德里”,
“姓名”:“C”,
“值”:“11”
}, {
“id”:“6”,
“地点”:“Banglore”,
“姓名”:“A”,
“值”:“14”
}, {
“id”:“7”,
“地点”:“Banglore”,
“姓名”:“C”,
“值”:“100”
},
{
“id”:“3”,
“地点”:“德里”,
“姓名”:“A”,
“值”:“30”
},]
$scope.finalArray=[];
$scope.stationName=[];
$scope.name=$filter('groupBy')($scope.data,'name');
angular.forEach($scope.name,function(k,v){
$scope.title=[];
$scope.count=[];
控制台日志(k,v);
$scope.title.push(v)
角度。forEach(k,函数(键,值){
$scope.count.push(key.value)
})
var obj={name:$scope.title[0],data:$scope.count}
$scope.finalArray.push(obj);
});
console.log($scope.finalArray)
})

{{finalArray | json}

我定义了一个函数distinct,它接受一个数组并返回数组中的distinct值。然后我使用这个函数获得一个名称和位置的清晰列表。然后,我将名称列表映射到对象数组中,对于每个名称,我将位置列表映射到该位置的值中

//代码在这里
var c=angular.module('myApp',['angular.filter']))
c、 控制器('myCtrl',函数($scope,$filter){
$scope.finalArray=[];
$scope.data=[{
“id”:“1”,
“地点”:“孟买”,
“姓名”:“A”,
“值”:“10”
}, {
“id”:“4”,
“地点”:“孟买”,
“名称”:“B”,
“值”:“20”
}, {
“id”:“4”,
“地点”:“德里”,
“名称”:“B”,
“值”:“77”
}, {
“id”:“5”,
“地点”:“德里”,
“姓名”:“C”,
“值”:“11”
}, {
“id”:“6”,
“地点”:“Banglore”,
“姓名”:“A”,
“值”:“14”
}, {
“id”:“7”,
“地点”:“Banglore”,
“姓名”:“C”,
“值”:“100”
},
{
“id”:“3”,
“地点”:“德里”,
“姓名”:“A”,
“值”:“30”
},]
const distinct=(array)=>array?array.reduce((arr,item)=>(arr.find(i=>i==item)?[…arr]:[…arr,item]),[]):数组;
constnames=distinct($scope.data.map(obj=>obj.name));
constplaces=distinct($scope.data.map(obj=>obj.place));
$scope.finalArray=names.map(name=>{
返回{
姓名:姓名,,
数据:places.map(place=>{
const obj=$scope.data.find(o=>o.place==place&&o.name==name);
返回对象?对象值:0;
})
};
});
})

{{finalArray | json}

您的期望可能是错误的。这似乎不符合逻辑。请重新访问并更新您的预期结果。抱歉,我编辑了我的预期响应。请检查一次并帮助meSorry,我在其中留下了一个TypeScript类型定义。我很久没有写过香草JS了。