js数组冷知识
2024-09-04 19:46:37
省略数组值
在声明数组时,省略一些数组值
let a = [1,,3] //a.length为3
a = [,,] //a.length为2
0 in a //false,a在索引0处没有元素
稀疏数组
稀疏数组时指包含从0开始的不连续索引的数组。如果数组是稀疏的,则length属性值大于元素的个数
a = new Array(5); //数组没有元素但length为5
a = []; //创建一个空数组,length=0
a[1000] = 0; //赋值添加一个元素,length为1001
数组长度有两个特性,一是它总是大于每个元素的索引值,二是当数组长度小于等于某些元素索引值时会删除这些元素。
let arr = [1,2,3,4,5]; // 从5个元素的数组开始
arr.length = 3; //现在的arr为[1,2,3]
arr.length = 0; //删除所有的元素,arr为[]
arr.length = 5; //长度为5,但是没有元素,就像new Array(5)
filter,every,some,reduce,reduceRight
filter类似于forEach和map,都是对数组进行循环,但filter()会跳过稀疏数组中缺少的元素,所以它的返回数组总是稠密的。
let arr = [1,,2,3];
some = arr.filter(function(x){return x < 2}); //[1]
every()方法就像数学中的∀
let arr = [1,2,3,4]
arr.every(function(x){return x > 0;}) //true
arr.every(function(x){return x % 2 === 0;}) //false
some()方法就像数学中的∃
let arr = [1,2,3,4]
a.some(function(x){return x > 10;}) //false
a.some(function(x){return x % 2 === 0;}) //true
reduce和reduceRight十分类似都是使用指定的函数将数组元素进行重新组合,不过reduceRight是按索引从高到底进行。
//数组求和
let sum = arr.reduce(function (x, y) {
return x + y;
},0);
//数组求最大值
let max = arr.reduce(function (x, y) {
return Math.max(x,y);
});
//数组去重
var newArr = arr.reduce(function (x, y) {
x.indexOf(y) === -1 && x.push(y);
return x;
},[]);
最新文章
- 项目游戏开发日记 No.0x000003
- selenium python 安装
- JavaScript中的闭包和匿名函数
- 轻松搭建Unity3D 安卓Android开发环境
- .NET 框架基本原理透析⑴
- ubuntu bless 16字节每行
- C#使用基类的引用 and 虚方法和覆写方法
- css3制作滚动按钮
- stm32f103 SPI单线TX发数据来驱动LCD
- hduAnother Graph Game
- Hierarchical Storage structure
- 《Spark Python API 官方文档中文版》 之 pyspark.sql (一)
- Android 夜间模式changeskin小结
- 【转】GAMITBLOBK中固定解、浮点解、约束解、松弛解等解类型解释
- 将选中的物体写入XML文件
- java实现wc.exe
- 思科4506E做ehterchannel故障排查
- .Net中EF通用数据层小结
- rsync详细配置
- Java RMI 概观
热门文章
- $UVA10559\ Blocks\ $区间$dp$
- 「Luogu P3183」[HAOI2016]食物链 解题报告
- 应届生/社招面试最爱问的几道Java基础问题
- OpenLayers4 隐藏(hide)Feature
- es6 面向对象选项卡(自动轮播功能)
- 恕我直言,牛逼哄哄的MongoDB你可能只会30%
- linux入门系列7--管道符、重定向、环境变量
- SpringCloud组件和概念介绍(一)
- 关于爬虫的日常复习(8)—— 实战:request+正则爬取猫眼榜单top100
- 关于爬虫的日常复习(2)—— urllib库