删除 javascript 中的子数组项
Remove Sub Array Item in Javascript
我将如何从JavaScript/jQuery中id = 2
的以下数组中删除整个子数组项?
arr = [{
"id": 1,
"name": "Steve"
},{
"id": 2,
"name": "Martin"
},{
"id": 3,
"name": "Short"
}]
我不确定在这种情况下如何使用grep
或splice
。
我想要的输出是:
newArr = [{
"id": 1,
"name": "Steve"
},{
"id": 3,
"name": "Short"
}]
尝试在此上下文中使用Array.prototype.filter
,
var arr = [ {"id":1,"name":"Steve"} , {"id":2,"name":"Martin"} , {"id":3,"name":"Short"} ];
var newArr = arr.filter(function(itm){
return itm.id !== 2;
});
您可以遍历数组并在找到 id 时使用拼接
var arr = [{"id": 1,"name": "Steve"},{"id": 2,"name": "Martin"},{"id": 3,"name": "Short"}];
for (var i=0; i<arr.length; ++i) {
if (arr[i].id == 2) {
arr.splice(i, 1);
}
}
alert(JSON.stringify(arr));
明确的问题解决方案:
var newArr = arr.filter(function(el) { return el.id!= 2; });
console.log(newArr);
这就是我的做法
var toRemove = "2";
var toKeep = [];
var arr = [ {"id":1,"name":"Steve"} , {"id":2,"name":"Martin"} , {"id":3,"name":"Short"} ];
var listOfItems = JSON.stringify(arr);
var splitItems = listOfItems.split('},');
for(var i = 0; i< splitItems.length; i++){
var details = splitItems[i].split(',');
if(details[0].split(':')[1] !== toRemove){
var people = {id:details[0].split(':')[1], name:details[1].split(':')[1].replace('}]', '')};
toKeep.push(people);
}
}
console.log(toKeep);
就我而言,我想从一个数组中减去另一个数组。因此,从另一个子数组中排除一个子数组,其中项目是复杂对象(例如id
字段)。
对于非复杂数组,您可以使用此处的答案:https://stackoverflow.com/a/53092728/2394052
否则,对于更复杂的对象,可以使用:
const fullArray = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }];
const subArray = [{ id: 1 }, { id: 3 }];
const resultArray = fullArray.filter(
(x) => !subArray.find((x2) => x.id === x2.id)
);
所以,这基本上是说,把subArray
中不存在的物品还给我
相关文章:
- 如何遍历包含对象的数组-javascript
- 保存数组javascript
- 查找数组javascript中包含的元素类型
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 拆分字符串数组(JavaScript)后未定义
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 使用条件for循环更新数组-Javascript
- 从数组javascript创建新对象
- 用数组(javascript)中的值替换regex捕获
- 从数组[Javascript]的总长度中减去一个干净的数字
- 将一个字符串数组解析为一个新的数组javascript
- 如何将对象转换为对象数组javascript
- 赢得't循环数组javascript
- 从不同的数组 JavaScript 中获取值
- 多维数组 JAVASCRIPT 出了点问题
- 可以't分配给一个对象数组javascript
- 比较数组JavaScript中的对象
- 如何完成缺少(连续)元素的数组|Javascript