迭代json结构,然后使用splice删除特定元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代json结构,然后使用splice删除特定元素相关的知识,希望对你有一定的参考价值。
- 我是js的新手。
- 我试图从json中删除一个元素,以便我不显示它。
- 我尝试了使用拼接方法的各种方法。
- 但我无法解决它。
- 你能告诉我如何解决它吗?
- 在下面提供我的代码和json。
- 我在if条件下保持了突破点。
- 当我在控制台中输入sportsScores时,我完全看到300个元素
- 因为它进一步分为三个阵列。
- 每个数组由100个元素组成。
- 因为每个元素都具有以下结构 playerID:301 playerName:“管理”playerNameFilterRowId:“管理”playerType:“ball”playerTypeOrder:1 ballID:28 ballName:“Admin”ballNameFilterRowId:“Admin”permissionLevelTypeID:1 permissions:null proto:Object
- 在这个我应该删除这个元素,这是第118个元素sportsScores [118] .playerName
- 我写了条件删除第118个元素,但我仍然无法删除。
if(sportsScores [i] .playerName ===“jump Data(here)”){
- 提供下面的代码段
let sportsScores = values.data;
for (let i = 0; i < sportsScores.length; i++) {
//console.log(sportsScores[i].ballName + "<---sportsScores[i].ballName--->" + sportsScores[i].playerName);
if(sportsScores[i].playerName === "jump Data (here)") {
console.log("sportsScores[i].playerName.splice(i, 1);--->");
//sportsScores[i].playerName.splice(i, 1);
//sportsScores.splice(sportsScores[i].playerName,1)
//sportsScores.splice(sportsScores[i].playerName);
sportsScores.splice(sportsScores[118]);
//console.log("sportsScores.splice(sportsScores[118]);--->" , sportsScores.splice(sportsScores[118]));
//console.log("sportsScores[i].playerName.splice(i, 1);--->" , sportsScores.splice(sportsScores[i].playerName,1));
//console.log("sportsScores[i].playerName.splice(i, 1);--->" , sportsScores.splice(sportsScores[i].playerName));
//console.log("sportsScores[i].playerName.delete(i, 1);--->" , sportsScores.delete(sportsScores[i].playerName,1));
}
sportsScores[i]["ballNameFilterRowId"] = sportsScores[i].ballName;
sportsScores[i]["playerNameFilterRowId"] = sportsScores[i].playerName;
sportsScores[i]["playerTypeFilterRowId"] = sportsScores[i].playerType;
}
this.gridkendo.reloadDataSource(values.data);
**JSON structure**
(312) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, …]
[0 … 99]
[100 … 199]
[200 … 299]
[300 … 311]
0
:
{playerID: 301, playerName: "Administration", playerType: "ball", playerTypeOrder: 1, ballID: 28, …}
1
:
{playerID: 302, playerName: "Special Events", playerType: "Node", playerTypeOrder: 2, ballID: 28, …}
2
:
{playerID: 304, playerName: "Off the Clock Settings", playerType: "Node", playerTypeOrder: 2, ballID: 28, …}
0:
playerID : 301
playerName : "Administration"
playerNameFilterRowId : "Administration"
playerType : "ball"
playerTypeOrder : 1
ballID : 28
ballName : "Admin"
ballNameFilterRowId : "Admin"
permissionLevelTypeID : 1
permissions : null
__proto__ : Object
答案
你正在以不同的方式做到这一点,删除元素的最好方法是找到索引,然后将其拼接1.试试这个
Var index = sportsScores.indexOf(function(obj){return obj.playerName ==“your condition”});
通过此,您将能够获取索引以删除项目,而无需循环。
要删除项目只需拼接它。
sportsScore.splice(指数,1);
这里的最后一个参数1是要从索引中删除的元素。
以上是关于迭代json结构,然后使用splice删除特定元素的主要内容,如果未能解决你的问题,请参考以下文章