繁体   English   中英

从 json 阵列中移除元素

[英]Removing element from json array

我有一个 Json 文件,我用它来存储数据,但如果不将“null”放在该元素所在的位置,我就无法从中删除某些内容。 我见过有人使用拼接,但它对我不起作用。 这就是我使用拼接时发生的情况

我使用的代码是删除 JsonObj.Times[index] 和 JsonObj.Times.splice(index, 1)

输入

{
    "Times": [
        {
            "TimeStamp": "1588516643",
            "PremiumTime": "1",
            "ID": "473873947895897",
            "GuildID": "27823978489723789"
        },
        {
            "TimeStamp": "1588516643",
            "PremiumTime": "1",
            "ID": "473873947895897",
            "GuildID": "27823978489723789"
        }
    ]
}

它能做什么

[
  {
    "TimeStamp": "1588516643",
    "PremiumTime": "1",
    "ID": "473873947895897",
    "GuildID": "27823978489723789"
  }
]

我想要的是

{
    "Times": [
        {
            "TimeStamp": "1588516643",
            "PremiumTime": "1",
            "ID": "473873947895897",
            "GuildID": "27823978489723789"
        }
    ]
}

当我使用 delete 时,它会执行我想要的操作,但会将 null 或 undefined 放入数组中。

如果你想使用splice() ,你可以这样做:

 const obj = { "Times": [ { "TimeStamp": "1588516643", "PremiumTime": "1", "ID": "473873947895897", "GuildID": "27823978489723789" }, { "TimeStamp": "1588516643", "PremiumTime": "2", "ID": "473873947895897", "GuildID": "27823978489723789" } ] } const res = obj.Times.splice(0, 1); console.log(obj);

拼接()

如果您知道索引值将在哪里结束,或者试图定位第一个/最后一个值,您还可以使用常见的数组操作方法.shift().pop()

如果我理解正确,您想从 Times 的数组中删除一个确定元素。

假设您有一个包含 JSON 数据的变量。 这意味着您无法访问存储变量的数据,因为它是字符串类型。

const jsonData = "{
"Times": [
    {
        "TimeStamp": "1588516643",
        "PremiumTime": "1",
        "ID": "473873947895897",
        "GuildID": "27823978489723789"
    },
    {
        "TimeStamp": "1588516643",
        "PremiumTime": "1",
        "ID": "473873947895897",
        "GuildID": "27823978489723789"
    }
  ]
 }"

来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

First of all, you have to parse JSON data using JSON.parse() that will convert the data to a JavaScript value or object described by the string. 这将允许您与这些数据进行交互。

let parsedData = JSON.parse(jsonData)

它将使用已解析的数据创建一个新变量,其中包含一个 object,其中包含一个对象数组。

parsedData = {
Times: [
    {
        "TimeStamp": "1588516643",
        "PremiumTime": "1",
        "ID": "473873947895897",
        "GuildID": "27823978489723789"
    },
    {
        "TimeStamp": "1588516643",
        "PremiumTime": "1",
        "ID": "473873947895897",
        "GuildID": "27823978489723789"
    }
  ]
 }

其次,我们将从 Times 数组中按索引删除元素,这些元素在 object parsedData 中声明。

parsedData.Times.split(index,1) 

其中: 第一个参数“index”:开始更改数组的索引。 第二个参数“1”:一个 integer 表示数组中要从开头删除的元素数。

来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

希望这可以帮到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM