如何将 id 数组与嵌套 属性 的对象数组与下划线进行比较
how to compare array of ids with object array nested property with underscore
我正在处理一个不使用 jquery 的项目。我一直在使用下划线或香草 javascript。这是我得到的东西。
plunker
// Code goes here
var successfullIdArray = ["713","281","555"];
var tmpTripsArry = [{
"routeUUID": "123",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "123",
"locationId": "713"
}
},{
"routeUUID": "909",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "909",
"locationId": "281"
}
},{
"routeUUID": "800",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "800",
"locationId": "555"
}
},{
"routeUUID": "444",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "444",
"locationId": "200"
}
}];
var tmpUpdatedTripsArry = _.each(tmpTripsArry, function () {
_.find(tmpTripsArry, function (item) {
if (successfullIdArray.locationId === item.routeLocations.locationId) {
item.routeLocations.isSubmitLocationSuccess = true;
return item;
} else {
return item;
}
});
});
console.log(tmpUpdatedTripsArry)
我需要将 locationId 的嵌套 属性 的 tmpTripsArry 与 successfullIdArray 和 return 匹配对象与
进行比较
isSubmitLocationSuccess
改为真。
我没有收到任何错误,但它没有执行我需要它执行的操作。谢谢。更喜欢使用下划线
简单的js
var matchingObjs = tmpTripsArry.filter( function(val){
if ( successfullIdArray.indexOf( val.routeLocations.locationId ) != -1 )
{
val.routeLocations.isSubmitLocationSuccess = true;
}
return successfullIdArray.indexOf( val.routeLocations.locationId ) != -1 ;
})
如果需要返回所有的对象,那么使用forEach代替
tmpTripsArry.forEach( function(val){
if ( successfullIdArray.indexOf( val.routeLocations.locationId ) != -1 )
{
val.routeLocations.isSubmitLocationSuccess = true;
}
})
现在 tmpTripsArry
本身具有修改后的值。
我正在处理一个不使用 jquery 的项目。我一直在使用下划线或香草 javascript。这是我得到的东西。 plunker
// Code goes here
var successfullIdArray = ["713","281","555"];
var tmpTripsArry = [{
"routeUUID": "123",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "123",
"locationId": "713"
}
},{
"routeUUID": "909",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "909",
"locationId": "281"
}
},{
"routeUUID": "800",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "800",
"locationId": "555"
}
},{
"routeUUID": "444",
"routeLocations": {
"isSubmitLocationSuccess": false,
"routeUUID": "444",
"locationId": "200"
}
}];
var tmpUpdatedTripsArry = _.each(tmpTripsArry, function () {
_.find(tmpTripsArry, function (item) {
if (successfullIdArray.locationId === item.routeLocations.locationId) {
item.routeLocations.isSubmitLocationSuccess = true;
return item;
} else {
return item;
}
});
});
console.log(tmpUpdatedTripsArry)
我需要将 locationId 的嵌套 属性 的 tmpTripsArry 与 successfullIdArray 和 return 匹配对象与
进行比较isSubmitLocationSuccess
改为真。
我没有收到任何错误,但它没有执行我需要它执行的操作。谢谢。更喜欢使用下划线
简单的js
var matchingObjs = tmpTripsArry.filter( function(val){
if ( successfullIdArray.indexOf( val.routeLocations.locationId ) != -1 )
{
val.routeLocations.isSubmitLocationSuccess = true;
}
return successfullIdArray.indexOf( val.routeLocations.locationId ) != -1 ;
})
如果需要返回所有的对象,那么使用forEach代替
tmpTripsArry.forEach( function(val){
if ( successfullIdArray.indexOf( val.routeLocations.locationId ) != -1 )
{
val.routeLocations.isSubmitLocationSuccess = true;
}
})
现在 tmpTripsArry
本身具有修改后的值。