首页 > 解决方案 > 如果匹配字符串,则删除 json 数组对象项

问题描述

在我的索引文件中,我正在使用 fs.json 访问这个 json。我正在尝试删除其中一个数组对象项,其中我的外部 index.js 文件中的字符串输入与“ChannelName”键的值匹配。

我尝试找到通道名称与字符串输入匹配的项目的索引,但这不起作用(转换为数组来尝试这个)。

有人有什么想法吗?这甚至可能吗?

{
    "DiscordServerId":"",
    "token":"",
    "twitch_clientID":"",
    "twitch_secret":"",
    "cron":"*/10 * * * *",
    "channelID":"",
    "roleID":"everyone",
    "channels":[
        {
            "ChannelName":"channel1",
            "DiscordServer":"",
            "twitch_stream_id":"",
            "discord_nessage_id":""},
        {
            "ChannelName":"channel2",
            "DiscordServer":"",
            "twitch_stream_id":"",
            "discord_nessage_id":""
        },
        {
            "ChannelName":"channel2",
            "DiscordServer":"",
            "twitch_stream_id":"",
            "discord_nessage_id":""
        }
    ],
    "authToken":""}

标签: javascriptarraysjsonobjectfs

解决方案


您可以channels使用某些条件更新。

const searchChannelName = "channel2";
const data = {
  "DiscordServerId": "",
  "token": "",
  "twitch_clientID": "",
  "twitch_secret": "",
  "cron": "*/10 * * * *",
  "channelID": "",
  "roleID": "everyone",
  "channels": [
    {
      "ChannelName": "channel1",
      "DiscordServer": "",
      "twitch_stream_id": "",
      "discord_nessage_id": ""
    },
    {
      "ChannelName": "channel2",
      "DiscordServer": "",
      "twitch_stream_id": "",
      "discord_nessage_id": ""
    },
    {
      "ChannelName": "channel2",
      "DiscordServer": "",
      "twitch_stream_id": "",
      "discord_nessage_id": ""
    }
  ],
  "authToken": ""
}
data.channels = data.channels.filter((node => node.ChannelName !== searchChannelName));
console.log(data);


推荐阅读