json数组去重的问题--indexOf
今天测试⼈员给⼩编提了⼀个需求,产品添加的时候实现追加的功能,想到了json数组合并的问题,然后就想到了要去重的问题,在此⽅法中使⽤到了js提供的indexOf⽅法解决,话不多说,直接上代码:
var json = SelectedRows();
var jsonParent = Ext.util.JSON.decode(jsonParentStr);
var tempArr = [];
for(var i=0;i<jsonParent.length;i++){
var temp = jsonParent[i];
tempArr.push(temp['productId']);
}
for(var i=0;i<json.length;i++){
var temp = json[i];
if(tempArr.indexOf(temp['productId'])==-1){
tempArr.push(temp['productId']);
jsonParent.push(temp);
}
}
但是有⼀个问题,IE8不⽀持indexOf⽅法,所以我们需要⼿动添加上indexOf⽅法,即在使⽤该⽅法之前,判断Array是否存在indexOf⽅法,不存在就添加上
if (!Array.prototype.indexOf)
{
js合并两个数组Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论