JavaScript:删除其属性 === 值的对象

标签 javascript json

<分区>

我有一个存储在 Redis 键中的 JSON 字符串。每当将用户添加到另一个用户列表时,我都会向该键添加一个对象。如何删除名称属性与要删除的值匹配的对象。

[{"name":"srtyt1","wins":0,"losses":0,"levels":0,"color":1672960,"avatar":[]},
 {"name":"srtyt2","wins":0,"losses":0,"levels":0,"color":1672960,"avatar":[]}, 
 {"name":"srtyt3","wins":0,"losses":0,"levels":0,"color":1672960,"avatar":[]} ]

上面的字符串是 Redis 的结果,我正在将其解析为 allFriends。我还有一个变量 exFriend,它将保存名称属性之一的值。

有没有办法删除 name 属性等于 "srtyt1" 的对象?或者我需要重组我的数据吗?我在 Mozilla map 文档中看到了这个循环,但我猜它不适用于对象?

    let allFriends = JSON.parse(result);

    //iterate through all friends until I find the one to remove and then remove that index from the array
    for (let [index, friend] of allFriends) {
      if (friend.name === exFriend) {
        //remove the friend and leave
        allFriends.splice(index, 1);
        break;
      }
    }

最佳答案

如果我正确理解你的问题,你可以通过执行以下操作从数组中“过滤”需要你的 friend.name === exFriend 条件的项目:

const exFriend = 'srtyt1';
const inputArray = 
[{"name":"srtyt1","wins":0,"losses":0,"levels":0,"color":1672960,"avatar":[]},
 {"name":"srtyt2","wins":0,"losses":0,"levels":0,"color":1672960,"avatar":[]}, 
 {"name":"srtyt3","wins":0,"losses":0,"levels":0,"color":1672960,"avatar":[]} ];
 
 
 const outputArray = inputArray.filter(item => {
  
  return item.name !== exFriend;
 });
 
 console.log(outputArray);

关于JavaScript:删除其属性 === 值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55545902/

相关文章:

javascript - '解析 JSON 时出现 SyntaxError : Unexpected end of input'. 错误?

javascript - 显示包含输入按钮的隐藏 div

php - jquery @mentions 输入 ajax 函数

javascript - 如何循环遍历对象数组和分隔嵌套数组

javascript - 将 JSON 响应映射到 TypeScript 中的组件模型。

javascript - 打开模式对话框窗口在 Chrome 中不起作用

javascript - jQuery 中的汉堡菜单

javascript - JavaScript 中的 "uncaught TypeError: Object is not a function"

json - 如何使用 Pig 读取非分隔的 JSON?

java.lang.string类型的Java值无法转换为jsonobject