首页 > 应用开发 > > JavaScript 数组去重 封装方法改善问题。
var dataList = $.extend(true, {}, data);;
dataList.rows = [];
for (var i = 0; i < data.rows.length; i++) {
if (!dataList.rows.contains(data.rows[i].taskid)) dataList.rows.push(data.rows[i]);
}
objData.dtTask.bootstrapTable('load', dataList);data是数据源 。dataList是调用jq的 深复制对象方法。如果dataList里面的row存在一样的taskid
就不push。
contains方法:
Array.prototype.contains = function(obj) {
for (var i = 0; i < this.length; i++) {
if (obj == this[i].taskid) { //改善的问题在这里
return true;
}
}
return false;
}问题来了。this[i].taskid是写死了 有的时候经常用到数组 不能老是复制一份代码。
请问this[i].taskid如果实现动态呢。最好的办法是在function里面传"taskid"进来 作为变量
但是 this[i].变量 这个时候又是未定义。?如何解决这个问题呢
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1868/viewspace-3137379/ ,如需转载,请注明出处,否则将追究法律责任。