从json数组中删除元素

问题描述 投票:0回答:1

我有一个Json文件,我用它来存储数据,但我不能从它中删除一些东西,否则它就会在该元素的地方放 "null"。我看到有人使用split,但对我来说并不奏效。当我使用拼接时,会发生以下情况

我使用的代码是删除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或未定义。

javascript node.js json
1个回答
0
投票

如果你想使用 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);

splice()


0
投票

如果你知道索引值的最终位置,或者是想针对首尾值,你也可以使用常见的数组操作方法。.shift().pop().


0
投票

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

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

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

来源于 https:/developer.mozilla.orgen-USdocsWebJavaScriptReferenceGlobal_ObjectsJSONparse。

首先,你必须使用JSON.parse()来解析JSON数据,它将把数据转换为一个由字符串描述的JavaScript值或对象。这将允许你与这些数据进行交互。

let parsedData = JSON.parse(jsonData)

它将用解析后的数据创建一个新的变量,它包含一个对象,里面有一个对象数组。

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

其次,我们将从Times的数组中按索引删除在我们的对象parsedData里面声明的元素。

parsedData.Times.split(index,1) 

其中:第一个参数 "index"。开始改变数组的索引.第二个参数 "1": 一个整数,表示要从数组中删除的元素数量。

资料来源:/developer.com https:/developer.mozilla.orgen-USdocsWebJavaScriptReferenceGlobal_ObjectsArraysplice。

希望能帮到你!

© www.soinside.com 2019 - 2024. All rights reserved.