删除集合中第一个匹配的项

Don*_*n P 2 javascript lodash

给定一个集合,如何仅删除与条件匹配的第一个项目?

例如,给定这个集合:

[
  { id: 1, name: "don" },
  { id: 2, name: "don" },
  { id: 3, name: "james" },
  { id: 4, name: "james" }
]
Run Code Online (Sandbox Code Playgroud)

过滤掉第一个匹配的结果{ name: "james" }。

结果:

[
  { id: 1, name: "don" },
  { id: 2, name: "don" },
  { id: 4, name: "james" }
]
Run Code Online (Sandbox Code Playgroud)

Saj*_*ran 5

使用 underscore.js_.without和_.findWhere

var myarray = [
  { id: 1, name: "don" },
  { id: 2, name: "don" },
  { id: 3, name: "james" },
  { id: 4, name: "james" }
];
var arr = _.without(myarray, _.findWhere(myarray, {
 name: "james"
}));
console.log(arr);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
Run Code Online (Sandbox Code Playgroud)

使用 Lodash _.without和_.find

var myarray = [
  { id: 1, name: "don" },
  { id: 2, name: "don" },
  { id: 3, name: "james" },
  { id: 4, name: "james" }
];


var result =_.without(myarray, _.find(myarray, { name: "james" }));
console.log(result);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)