lodash pullAllWith通过比较器删除数组中的指定元素

lodash pullAllWith通过比较器删除数组中的指定元素,和differenceWith方法不同, 此方法会改变原始数组。

pullAllWith方法

var res=_.pullAllWith(arr, removeArr, [比较器]);
参数
arr: 需要处理的数组。
removeArr: 需要移除元素的数组。
返回值
res:移除后的新数组,注意arr的值也会被改变

pullAllWith例子

//例子1
var arr = [{ 'x': 22, 'y': 23 }, { 'x': 66, 'y': 88 }];
var res=_.pullAllWith(arr, [{ 'x': 22, 'y': 23 }], _.isEqual);
//arr和res等于{ 'x': 66, 'y': 88 }


//例子2
var arr = [{ 'x': 22, 'y': 23 }, { 'x': 66, 'y': 88 }];
var res=_.pullAllWith(arr, [{ 'x': 22, 'y': 23 }], function(a,b){
 return a.x==b.x;
});
//arr和res等于{ 'x': 66, 'y': 88 }

在线试一试

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>lodash pullAllWith例子</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
    <script src="https://www.itxst.com/package/lodash/lodash.min.js"></script>
    <script src="https://www.itxst.com/package/jquery-3.5.1/jquery.min.js"></script>
</head>
<body style="padding:10px;">
    <div class="btn" onclick="ck1()">例子1</div> 
    <div class="btn" onclick="ck2()">例子2</div> 
    <div id="result">点击按钮试一试</div>
    <script>
     function ck1() {
      var arr = [{ 'x': 22, 'y': 23 }, { 'x': 66, 'y': 88 }];
      var res=_.pullAllWith(arr, [{ 'x': 22, 'y': 23 }], _.isEqual);
      $("#result").html(JSON.stringify(res));
     }
     function ck2() {
      var arr = [{ 'x': 22, 'y': 23 }, { 'x': 66, 'y': 88 }];
      var res=_.pullAllWith(arr, [{ 'x': 22, 'y': 23 }], function(a,b){
       return a.x==b.x;
      });
      $("#result").html(JSON.stringify(res));
     } 
    </script>
    <style>
        .btn {
            border: solid 1px #ddd;
            background-color: #eee;
            border-radius: 5px;
            padding: 5px 12px;
            text-align: center;
            cursor: pointer;
            display: inline-block;
            margin-right: 8px;
        }
       .btn:active {
            border: solid 1px #cac9c9;
            background-color: #cac9c9;
        }
    </style>
</body>
</html>