javascript - 如何从数组Javascript / Jquery中删除obj
问题描述
我必须使用 obj 数组(这些数组中的 obj 相同,具有相同的道具)。我想filesToRemove
从 array中删除所有具有相同名称的 obj files
。下面的代码抛出一个错误:Uncaught TypeError: files.splice is not a function
- 我做错了什么?出于测试目的,我使用delete files[j];
了 ,但它什么也没做。谢谢!
var filesToRemove = [
{ name: "SCO Bike Contessa 730 a.jpg"},
{ name: "SCO Bike Contessa 730.jpg"}]
var files= [
{ name: "SCO Bike Aspect 930.jpg" },
{ name: "SCO Bike Contessa 730 a.jpg"},
{ name: "SCO Bike Contessa 730.jpg"}]
remove(filesToRemove, files)
function remove(filesToRemove, files) {
for (var i = 0; i < filesToRemove.length; i++) {
if (filesToRemove[i].name) {
for (var j = 0; j < files.length; j++) {
if (files[j].name == filesToRemove[i].name) {
if (j > -1) {
files.splice(j, 1);
}
//delete files[j];
}
}
};
}
};
解决方案
您可以使用一些 JS 的数组方法。
var files = [{name: 'foo.txt'}, {name: 'bar.txt'}, {name: 'baz.txt'}]
var files_to_remove = [{name: 'bar.txt'}]
files = files.map(file => {
var found = files_to_remove.some(o => o.name == file.name)
return found ? null : file
})
console.log(files)
推荐阅读
- python - Python基于掩码数组过滤numpy数组
- c# - 获取HashSet的内部数组
在 C# 中 - libreoffice-basic - 在 Linux 中打开文件夹路径的 LibreOffice 基本命令
- discord - 如何通过我的不和谐机器人和网站进行交流(并在我的不和谐机器人中获取/存储数据)
- javascript - 在 JavaScript 中计算二维数组的总和
- editor - 制作编辑器用什么?
- python - eval函数Python的错误输出
- r - 如何正确格式化读取用户输入的 CodeChef 提交
- azure - CORS 策略问题:请求的资源上不存在“Access-Control-Allow-Origin”标头。网络核心 3.1
- python - 在给定的时间戳获取所有持有 ERC20 代币的地址