这与现有线程非常相似,但不完全相同:
Find object by id in an array of JavaScript objects
从这个帖子我知道我可以通过$.grep
找到一个对象:
var events = [
{startTime: 5, endTime: 20},
{startTime: 15, endTime: 22},
{startTime: 30, endTime: 31}
];
var results = $.grep(events, function(e){
return (e.startTime == 15 && e.endTime == 22); });
return results[0]; // 1 result guaranteed
但是如何从events数组中删除这个找到的对象呢?要使用splice
,我是否需要索引以及$.grep
?
我需要按键/值在数组中找到对象,然后将其删除。
var events = [
{startTime: 5, endTime: 20},
{startTime: 15, endTime: 22},
{startTime: 30, endTime: 31}
];
var results = $.grep(events, function(e){
return (e.startTime == 15 && e.endTime == 22); });
console.log(results[0]);
//console.log(events); // 1 result guaranteed

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 0 :(得分:0)
var events = [
{startTime: 5, endTime: 20},
{startTime: 15, endTime: 22},
{startTime: 30, endTime: 31}
];
var filteredEvents = events.filter(function(item) {
return item.prop !== undersirableValue;
});
此处有更多信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
答案 1 :(得分:0)
只需使用过滤器并取消搜索
var events = [{
startTime: 5,
endTime: 20
},
{
startTime: 15,
endTime: 22
},
{
startTime: 30,
endTime: 31
}
];
events = events.filter(e => !(e.startTime == 15 && e.endTime == 22));
console.log(events);