Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何从数组中删除某个对象_Jquery - Fatal编程技术网

Jquery 如何从数组中删除某个对象

Jquery 如何从数组中删除某个对象,jquery,Jquery,我有一个数组,如下所示 var test = [ { "name": "Mike", "incentives": "23.45", "id": "1" }, { "name": "Larsen", "incentives": "34.78", "id": "2" }, { "name": "Steve", "incentives": "26.78", "id": "3" } ] var idtob

我有一个数组,如下所示

var test = 
[
  {
    "name": "Mike",
    "incentives": "23.45",
    "id": "1"
  },
  {
    "name": "Larsen",
    "incentives": "34.78",
    "id": "2"
  },
  {
    "name": "Steve",
    "incentives": "26.78",
    "id": "3"
  }
]
var idtoberemoved = 2

test = test.filter((obj) => typeof obj.id = '2');
我想移除某个对象

我已尝试如下所示

var test = 
[
  {
    "name": "Mike",
    "incentives": "23.45",
    "id": "1"
  },
  {
    "name": "Larsen",
    "incentives": "34.78",
    "id": "2"
  },
  {
    "name": "Steve",
    "incentives": "26.78",
    "id": "3"
  }
]
var idtoberemoved = 2

test = test.filter((obj) => typeof obj.id = '2');

typeof obj.id
将为您提供
“字符串”
,您希望筛选出
id
属性不等于
“2”
的对象。所以,应该是这样

test.filter(obj => obj.id !== '2');

在JS中,
=
用于赋值,而不是相等性测试。我们使用
==
===
==
=用于相等测试。
=
=
之间存在差异,但这是一个完整的主题。

您可以在数组中找到元素的索引,并使用splice将其删除

var测试=[{
“姓名”:“迈克”,
“激励措施”:“23.45”,
“id”:“1”
},
{
“姓名”:“拉森”,
“激励措施”:“34.78”,
“id”:“2”
},
{
“姓名”:“史蒂夫”,
“激励措施”:“26.78”,
“id”:“3”
}
];
//使用接头拆下元件
测试接头(
//查找要删除的元素的索引
test.indexOf(test.find(函数(元素){return element.id==“2”}))
//从找到的索引中删除1个元素
1.
);
控制台日志(测试)
var测试=[
{
“姓名”:“迈克”,
“激励措施”:“23.45”,
“id”:“1”
},
{
“姓名”:“拉森”,
“激励措施”:“34.78”,
“id”:“2”
},
{
“姓名”:“史蒂夫”,
“激励措施”:“26.78”,
“id”:“3”
}
];
var filtered=test.filter(函数(对象){
返回object.id!=2;
});

console.log(过滤)如果您正在查找要删除的多个id,这里有一种使用reduce实现的方法。这与其他方法和答案没有太大区别,但却是完成提问的不同方式

var测试=[{
“姓名”:“迈克”,
“激励措施”:“23.45”,
“id”:“1”
},
{
“姓名”:“拉森”,
“激励措施”:“34.78”,
“id”:“2”
},
{
“姓名”:“史蒂夫”,
“激励措施”:“26.78”,
“id”:“3”
}
];
函数removietem(idList){
var结果=test.reduce(函数(输出,currentObject){
如果(!idList.includes(currentObject.id)){
push(currentObject);
}
返回输出;
}, []);
返回结果;
}

console.log(removietem([“2”,“3']))
它应该是
test.filter((obj)=>obj.id==“2”)一旦我执行这一行,数组长度将变为1,因为我只删除了一个元素,所以它必须是2。长度必须是1,但必须是2,因为我只从数组中删除了1个对象array@Pawan我不明白你的意思。让它
test.filter(obj=>obj.id!=='2')