About Array operation

1.删除两个数组重复的值(不保留重复的)

 function removeObjById(arr1, arr2){
    for(var i = 0; i < arr2.length; i++){
      for(var j = 0; j< arr1.length; j++){
        if(arr2[i] == arr1[j]){
          var indexs = arr1.indexOf(arr1[j]);
          arr1.splice(indexs, 1);
        }
      }
    }
    return arr1;
}

2.筛选出两个数组重复部分

function selectObjById(arr1, arr2){
    var newArray = [];
    var j = 0;
    for (var i = 0; i < arr1.length; i++) {
        for (var k = 0; k < arr2.length; k++) {
            if (arr1[i] == arr2[k]) {
                newArray[j] = arr1[i];
                ++j;
            }
        }
    }
    return newArray;
}

3.筛选已经选择过的active项 (需求是选择一些当前为active的项放到一个新的数组,新的数组中不能有这些active的重复项)

var objArrayLibs = [];//当前已经选择过的所有的active,定义一个全局变量
function ensureTrack(){
    var libIdx = [];
    var confirmData = [];
    if(cardInfo.length <= 0){
        alertModal(1,"请选择图片进行轨迹确认!")
        return;
    }
    for(var i = 0; i < cardInfo.length; i++){
        if($(cardInfo[i]).hasClass("active")){
            var objID = $(cardInfo[i]).attr("id");
            if(objArrayLibs.indexOf(objID) == -1){
               //如果objArrayLibs中不存在,push进来
                confirmData.push(objID);
                //当前的active中,如果objArrayLibs中不存在,push进来
                objArrayLibs.push(objID);
            }
        }
    }
    console.log(objArrayLibs,confirmData)
}

4.移除元素-倒着遍历数组,绕过改变下标问题

function deleteOneInfo(id)
{
    for(var k = allInfo.length - 1; k >= 0; k--)
    {
        var oneInfo = allInfo[k];
        if(id == oneInfo.id)
        {
            allInfo.splice(k,1);
            break;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容