首页 前端开发 JS 中彻底删除 JSON 对象组成的数组中的元素

JS 中彻底删除 JSON 对象组成的数组中的元素

在 JS 中,对于某个由 JSON 对象组成的数组,例如:

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];

如果我们想要删除其中的第二个json对象,应该怎么做呢?其实方法和操作数组完全相同。

 

在最开始的时候尝试使用了 delete 运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];test.length   //输出为 3delete test[1];test.length   //输出仍为 3

查询运算符 delete 我们知道它只是将该值置为 undefined,而不会影响数组长度,即将其变为稀疏数组(《JS权威指南》7.5节)。

 

了解及此,也许想着可以将删除点之后的元素各往前移动1个单位,实现彻底剔除该元素,但在JS方法中我们可以查到一种更加简便的方式:splice() 方法

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];test.length   //输出为 3test.splice(1, 1);test.length   //输出为 2

删除后 test.length 变为 2,这正是我们想要的结果。

站心网

在 JS 中,对于某个由 JSON 对象组成的数组,例如:var test = [{ "a": "1", "b": "2" }, { "a": "3", "b":..

为您推荐

C#中数组作为参数传递的问题

原则:尽可能控制对数据的修改,如果可以预测某个数据不会或不应该被改变,就要对其控制,而不要期望使用这个数据的调用者不会改变其值。如果参数在使用过程中被意外修改,将会带来不可预知的结果,而且这种错误很难..

javascript 6种连接数组的方法和对比

在 JavaScript 中,有多种方法可以用来连接数组,以下是常见的几种:1. concat() 方法用于连接两个或多个数组,返回一个新的数组,不修改原数组。const arr1 = [1, 2, 3];const arr2 = [4, 5, 6];const result = arr..

js 数组方法 - 修改篇

js数组方法可分为三类:修改、访问、迭代。修改:改变原有数组访问:不改变原有数组,从原有数组中获取数据迭代:对数组的每一项进行处理,返回数据本文主要介绍数组的修改篇一、增加1、push()含义:在数组末尾添加..

.NET 9 中System.Text.Json 的新增功能

在 .NET 9 中,System.Text.Json 进行了多个重要的更新和增强,进一步提升了 JSON 处理的性能、灵活性和易用性。以下是 .NET 9 中 System.Text.Json 的一些主要新增功能:1. 类型转换器 (Type Converters) 支持.NET ..

工作这么多年,你能向新人解释清到底什么是面向对象编程吗?

面向对象编程想必大家都耳熟能详,但是写了这么多代码你对面向对象有清晰的认识吗?来看看这几个问题:到底什么是面向对象编程?和面向过程编程有什么区别?什么又称为面向对象语言、面向过程语言?用面向对象语言写..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

c#获取两个数组或集合的交集或差集

c#获取两个数组或集合的交集或差集。 不要使用循环,效率肯定低。C#有现成的高性能的获取数组或集合的交集或差集方法:Intersect和Except。 使用Intersect和Except获取两个数组的交集或者差集时性能很高,我测试两个..

.NET Core Razor page/MVC 返回json忽略空属性

.NET Core Razor page/MVC 返回json忽略空属性,修改program.cs。添加配置builder.Services.AddRazorPages().AddJsonOptions(options => {options.JsonSerializerOptions.DefaultIgnoreCondition = System.Text.Json..

AForge.NET库和它的使用方法

AForge.NET是一个功能强大的开源图像和计算机视觉框架,用于在C#和.NET平台上进行图像处理、计算机视觉和机器学习任务。它提供了广泛的图像处理和计算机视觉算法,使开发人员能够处理图像、视频和摄像头数据,并进行..

.NET对象映射框架Mapster使用方法

Mapster是一个开源的.NET对象映射库,它提供了一种简单而强大的方式来处理对象之间的映射。在本文中,我将详细介绍如何在.NET中使用Mapster,并提供一些实例和源代码。Mapster和其它框架性能对比Mapster的安装和配置..

什么是json5?它和json的区别

JSON5 是 JSON 的一个超集,它扩展了 JSON 的语法,使其更易于编写和阅读。JSON5 是 JavaScript Object Notation 5 的缩写,它由 Douglas Crockford 编写。JSON5 是 JSON 的一个扩展,旨在提供一种更加人类友好和容..

Angular如何mock window对象

写单元测试时,有如下代码const localFile = window.URL.createObjectURL(this.pdfFile);这里想mock window对象,让createObjectURL随便返回一个对象。解决办法如下:beforeEach(async(()=>{(<any>window.URL.create..

vscode中自动将json格式的内容自动生成对应的代码

JSON是各种编程语言中都很常用的数据格式,如Java,JavaScript,C#等语言中都常用JSON传输数据或保存一些配置信息,要序列化或反序列化字符串,在代码中需要有对应与JSON内容的类才方便实现。vscode是非常强大的插件..

伪元素:before和:after的用法

使用伪元素:before和:after给照片添加阴影 一个名叫Paul UnderwoodWEB程序员使用伪元素:before and :after制作出了完美惊艳的相片阴影效果。其中的技巧是使用绝对定位固定伪元素,然后给它们的z-index一个负值,以背..

position:sticky纯css实现粘性定位让元素滚到顶部固定

想要让某些元素(例如导航,概要)滚动到顶部后就悬停在顶部固定,可以通过postion:sticky纯css简单实现,而不用使用js使得代码很复杂。关于postion: stickyMSDN关于sticky的描述是这样的:元素按照文档的正常流定位..

如何使用js格式化json、css和scss

使用JavaScript格式化JSON要使用JavaScript格式化JSON,可以使用内置的JSON.stringify()函数。该函数将JavaScript对象转换为JSON字符串,并且可以传递参数来使输出的JSON字符串更具可读性。以下是使用JSON.stringify..

js对象自动属性绑定html模版插件

对于一些不是用React, Vue框架的前后端不分离的老网站,通过ajax请求数据后输出html页面比较繁琐,一般使用拼接html的方式。于是写了一个插件减少拼接html的工作量。Object.prototype.bindList=function(tpl,options..

C#中结构体和byte数组之间的转换

前言在使用C#写通信的程序时,数据只能以byte数组的进行传输,处理起来比较麻烦不说,如果与非托管语言的API交互时,很多的都是传送结构体,在C/C++语言中可以很方便的把一个char[]数组或者内存空间转换为一个结构体..

原生js格式化json

要格式化 JSON,您可以使用 JavaScript 中的 JSON.stringify() 方法和一些选项来生成格式良好的 JSON 字符串。使用 JSON.stringify() 方法来格式化 JSON以下是一个示例,展示如何使用 JSON.stringify() 方法来格式化..

json5新特性

JSON5 是 JSON 的一种扩展格式,旨在提供更加人性化和便捷的 JSON 语法。JSON5 在 JSON 的基础上增加了一些特性,使其更加灵活和易读。以下是 JSON5 的一些特点:注释支持: JSON5 允许在数据中添加注释,这在标准 J..

发表回复

返回顶部