如何检查和删除不再需要的数组项
How can I check for and remove an array item that is no longer needed?
我正在使用Google Maps API v3,我有一个标记数组(markersArray),每个标记都包含一个名为"id"的元素。通过 Ajax,我点击一个数据库并将当前 ID 值作为数组 (tokID) 返回并调用"loadMarkers"函数。
在"loadMarkers"函数中,我需要删除任何与从数据库返回的 ID 值不匹配的数组项。我已经研究了 .splice() 和 .filter(),但在我的一生中无法让它工作。
很抱歉没有代码示例。我真的很困惑,真的没有什么可脱的。
感谢!话筒
粗略地说,你可以做这样的事情,
更新的工作代码
var newIDs; // new IDs found from ajax
newIDs = [1,2]
markersArray = [{ID:1},{ID:8},{ID:2},{ID:4},{ID:6}]
var newMarkers = $.map(markersArray,function(obj,i){
if(($.inArray(obj.ID,newIDs) == -1))
return null;
else
return obj;
});
console.log(newMarkers);
// now newMarkers holds the filtered markers Array
修改上面的代码以满足您的需要。
$.map $.inArray
检查工作小提琴
找出从服务器发送的额外ID的最终代码也是: 小提琴
var newIDs; // new IDs found from ajax
newIDs = [1,2,3,4,5];
markersArray = [{ID:1},{ID:8},{ID:2},{ID:4},{ID:6}];
console.log('Orig Array: ',markersArray);
console.log('From Server: ',newIDs);
var newMarkers = $.map(markersArray,function(obj,i){
return $.inArray(obj.ID,newIDs) == -1? null: obj;
});
console.log('New Markers Objects: ',newMarkers);
var newMarkerIDs = $.map(markersArray,function(obj,i){
return $.inArray(obj.ID,newIDs) == -1? null:obj.ID;
});
console.log('New Markers ID Array: ',newMarkerIDs);
var extraIDs = $.map(newIDs,function(val,i){
return $.inArray(val,newMarkerIDs) == -1 ? val : null;
});
console.log('Extra IDs: ',extraIDs);
我不确定您拥有哪些数据以及在调用loadMarkers
之前获取数据但是如果您使用的是 JQuery 并且想要根据另一个数组中的 id 列表从数组中删除项目,这是您如何做到这一点:
var orgArray = [{id:1},{id:2},{id:3}];
var newArray = [1,3];
var orgArray = $.map(orgArray, function(v, i){ return $.inArray(v.id, newArray) ? v : null;});
console.log(orgArray);
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 如何检查和删除不再需要的数组项
- JS:比较数组和添加新的项目或删除不再在数组中的项目
- Requirejs导出数组reset with [] literal不再被导出