Cem*_*göz 1 typescript angular
我有一个包含146个对象的数组(现在)和一个带路由器的id.如果object.id不等于id,我想删除对象.我为此编写了一个函数,但它只为一半的数组工作.在添加这些拼接之前,此功能运行良好.我的代码;
getFullData(){
var fullData = [OBJECTS].sort(function(a,b){if(a.date<b.date)return 1; if(a.date > b.date) return -1})} //sorting
fullData.map(val=>{
Object.assign(val, {dataType:this.getDateType(val.date)}); //this line not about these problem
if (val.device !== this.id) {
fullData.splice(fullData.indexOf(val), 1);
}
});
return fullData;
}
Run Code Online (Sandbox Code Playgroud)
这个对象的所有id现在都是一样的.当我用路由器路由不同的id时,它必须删除所有这些但只删除73个对象.
您正在循环拼接的同一个数组,最好在地图之前使用过滤器:
fullData = fullData
.filter((val) => val.device !== this.id)
.map((val) => {...val, dataType: this.getDateType(val.date) });
Run Code Online (Sandbox Code Playgroud)
如果性能是一个问题,并且您不想循环两次,您可以在过滤器内完成:
fullData = fullData
.filter((val) => {
if (val.device !== this.id) {
return false;
}
val.dataType = this.getDateType(val.date);
return true;
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |