js 数组删除元素,并获得真实长度
前言:js数组删除一般采用数组的 splice 方法和 delete 方法,但是采用 delete 方法后直接数组.kength 来获取数组长度是获取不了真实长度的,下面详细讲解一下。
一、splice 方法
splice ( index , len , [ item ] ) 该方法会改变原始数组。
index:数组开始下标。len:替换/删除的长度。item:替换的值,删除操作的话 item为空
举例
//清空整个数组
arr.splice(0, arr.length);
console.log(arr); //删除一个元素
var arr = ["11", "22", "33", "44", "55"];
arr.splice(1, 1);
console.log(arr); //删除一个,增加两个
arr.splice(1, 1, "34", "43");
console.log(arr);
二、delete 删除数组元素
只是被删除的元素变成了 undefined,其他的元素的键值还是不变。
var arr = ["11", "22", "33", "44", "55"];
console.log(arr); delete arr[2];
console.log(arr); for(var i = 0; i < arr.length; i++){
console.log(arr[i]);
}
打印出来的结果:可以看出 delete 方式不会改变数组的长度,而且删除的元素只会变成 undefined。

这时想获取数组真实长度,可以采取下面这种方式:
var length = 0;
for(var a in arr){
length ++;
}
console.log("数组真实长度" + length);
js 数组删除元素,并获得真实长度的更多相关文章
- js数组删除元素、json删除元素
//数组var b=[1,2,3,4]; b.splice(b.indexOf(2,1)) //1,3,4 //json var arrayId=[{"id":233," ...
- C#数组删除元素
一.C#数组删除元素 在C#中,只能在动态数组ArrayList类中对数组执行删除元素的操作.因为动态数组是一个可以改变数组长度和元素个数的数据类型. 示例: using System;using S ...
- (转载)php数组删除元素各种方法总结
(转载)http://www.111cn.net/phper/php/46865.htm 有很多朋友都不知道怎么把数组中元素给删除,下面我来总结各种数组删除元素方法给各位,有需要了解的朋友可进入参考. ...
- js,javascript,删除元素,创建元素,插入子元素
删除元素示例代码 <html> <head> </head> <body> <div> <div id="delId&quo ...
- js数组增删元素
操作数组的方法 push() 结尾添加 数组.push(元素) 参数 描述 newelement1 必需.要添加到数组的第一个元素. newelement2 可选.要添加到数组的第二个元素. newe ...
- 077-PHP数组删除元素
<?php $arr=array(98,'hello',67,'A',85,NULL); //定义一个数组 echo '删除元素之前数组中的元素个数为:'.count($arr); //输出数组 ...
- js添加删除元素内容
<body> <div id="div" style="background: yellow;width:200px;height:200px;&quo ...
- js array 数组删除元素
/* * 方法:Array.remove(dx) * 功能:根据元素位置值删除数组元素. * 参数:元素值 * 返回:在原数组上修改数组 */ Array.prototype.baoremove = ...
- JS数组删除一个元素(根据值删)
<script type="text/javascript"> <!-- // 删除数组中第一个匹配的元素,成功则返回位置索引,失败则返回 -1. Array.p ...
随机推荐
- 利用tensorflow训练简单的生成对抗网络GAN
对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的. 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(di ...
- Python面向对象(特殊成员)
day25 __init__ 类()自动执行 __del__ __call__ 对象() 类()() 自动执行 __int__ int(对象) ...
- include与file_get_contents区别
参考:http://www.cnblogs.com/bgwan/archive/2013/03/13/2957215.html 一,先来说file_get_contents 这个函数就 ...
- javaweb+spring 项目集成异常的处理
在web项目开发中,一个系统应该要考虑到异常情况的处理,并且应该当异常发生时应该需要记录相应的异常日志,对于用户而言则不能直接抛出异常,需要考虑到用户的体验: 以下就介绍基于spring框架的基础上的 ...
- 【4】JMicro微服务-服务限流
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 通过配置SMethod的maxSpeed属性实现服务限流,单位是个/每秒(qps),也就是服务方法每秒允许接收的最大请求个数 ...
- 【CODECHEF】Children Trips 倍增
此题绝了,$O(n^{1.5}\ log\ n)$都可以过掉.... 题目大意:给你一颗$n$个点的树,每条边边权不是2就是$1$,有$m$个询问,每次询问一个人从$x$点走到$y$点,每天可以走的里 ...
- EJB3 事物
在ejb3中事物分为两种类型:容器管理的事物(CMT).Bean管理的事物(BMT) 1.容器管理的事物(CTN) 是EJB默认的事物管理方式,即以对应的方法起始和结束来由EJB容器确定事务的始末边界 ...
- Vue的watch监听事件
Vue的watch监听事件 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 由一段代码谈前端js优化和编码规范(一) 分类: JavaScript 2015-03-21 12:43 668人阅读 评论(1) 收藏
这段代码是撸主刚毕业那会写的,主要是实现一个左侧的导航条的折叠功能.当时实现的比较简陋,每次在导航条增加新的项目的时候,都要手动去修改js代码中写死的索引...确实是比较恼火的,后来就修改了一下,能够 ...
- 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...