JS数组和函数 小记
数组
JS中的数组来自window,是一个全局的对象,typeof的值是'object'。
创建数组:
1.Array(3):当只传一个值的时候,会生成一个长度为该数值的空数组。
2.Array(3,3):当传入的值大于1个的时候
3. new Array(3) 跟加不加new是一样的
4. new Array(3,3) 跟加不加new是一样的
5. a = [1,2,3] 最好用的
数组的本质
数组就是数据的有序的集合,但是从JS的角度来看,数组就是原型链中有Array.prototype的对象
见下图:
伪数组
有0,1,2,3,4,5,....n和lenght这些key的对象,但是原型链中没有Array.prototype
伪数组有:
arguments对象和document.querySelectAll('div')返回的对象
数组中的API
记几个比较重要的:
1.遍历数组
Array.prototype.forEach
var a = [1,2,3,4]
a.forEach(function(k,v){
console.log("key",k)
console.log("value",v)
})
2.排序数组
Array.prototype.sort
var a = [1,2,3,4]
console.log(a.sort())
// 倒过来排
console.log(a.sort(function(x,y){
return y-x
}))
3.连接所有数组元素组成一个字符串
Array.prototype.join
var a = [1,2,3,4]
console.log(a.join("-")) // 1-2-3-4
4.返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
Array.prototype.concat
var a = [1,2,3,4]
var b = [5,6]
console.log(a.concat(b)) // [1,2,3,4,5,6]
5.返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的
Array.prototype.toString
var a = [1,2,3,4]
console.log(a.toString()) // 1,2,3,4
6.返回一个由回调函数的返回值组成的新数组
Array.prototype.map
var a = [1,2,3,4]
console.log(a.map(function(x){
return x*2
})) // [2,4,6,8]
7.将所有在过滤函数中返回 true
的数组元素放进一个新数组中并返回。
Array.prototype.filter
var a = [1,2,3,4]
console.log(a.filter(function(x){
if (x>=3){
return true;
}
})) //[3,4]
8.从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
Array.prototype.reduce
var a = [1,2,3,4]
console.log(
a.reduce(function(sum,n){
return sum+n
},0)
) //10
如果想知道更详细的请见MDN:MDV数组
函数
函数的5种声明:
1.具名函数
2.匿名函数
3.具名函数赋值
4.window.Function
5.箭头函数(ES6的语法)
调用函数、this和arguments
f.call(asThis, input1,input2)
function f(){
'use strict'
console.log(this)
console.log(arguments)
return undefined
}
f.call(1,2,3) // this 为 1,arguments 为 [2,3]
使用 strict和不是使用strict的区别
当不传入任何参数的时候
作用域记住变量提示即可。
闭包:如果一个函数,使用了它范围外的变量,那么这个函数加这个变量就叫做闭包!
JS数组和函数 小记的更多相关文章
- js 数组处理函数
本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- JS数组at函数(获取最后一个元素的方法)介绍
本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大. 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做? 相信大部分人能 ...
- JS 数组及函数
数组 定义 Array(1,3.14,"aa") 给数据 Array(5) 给长度 [1 ...
- 最近学习的 Node.js 数组_函数
数组的排序,用到了箭头函数 let arr=[, , , , , , ]; /* arr.sort(function (n1, n2){ return n1-n2; }); */ // 等价于上面的写 ...
- js 数组操作函数有:push,pop,join,shift,unshift,slice,splice,concat
(1)push 和 pop 这两个函数都是对数组从尾部进行压入或弹出操作.push(arg1,arg2,...)可以每次压入一个或多个元素,并返回更新后的数组长度.注意如果参数也是数组的话,则是将全部 ...
- js 数组 splice 函数 多线程
<script type="text/javascript"> var arr = new Array(6) arr[0] = "00" arr[1 ...
- JS分割字符串并放入数组的函数
JS分割字符串并放入数组的函数: var InterestKeywordListString = $("#userInterestKeywordLabel").html(); v ...
- js中的函数,Date对象,Math对象和数组对象
函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...
随机推荐
- ASP.NET Core学习总结(2)
public class ControllerActionInvoker : ResourceInvoker, IActionInvoker 我们知道,ControllerActionInvoker实 ...
- C#基础笔记(第十六天)
1.进程复习//通过进程去打开应用程序 Process.Start("calc"); Process.Start("mspaint"); Process.Sta ...
- LightOJ 1197 LightOJ 1197(大区间素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1197 题目大意: 就是给你一个区间[a,b]让你求这个区间素数的个数 但a.b的值太大没法直接进 ...
- 「HAOI2010」 弹飞绵羊
题目链接 戳我 \(Solution\) \(LCT\)裸题 我们首先先新建一个节\(n+1\)点,表示被弹飞 对于点\(i,link(i,min(n+1,i+k_i))\) 再看看修改: 现在要将点 ...
- Linux下MySQL数据库的备份与还原
昨天对公司数据库进行备份.用了以下的方法一. 导出1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql 如果要导出数据库全部: mysqldump - ...
- CentOS7.x下安装VNC
1.检查是否安装VNC rpm -q tigervnc tigervnc-server 2.安装X-Window yum check-update yum groupinstall "X W ...
- [VB6.0-->VB.NET]关于VB6.0升级到VB.NET的微软官方文档
升级流程大体是这样的: 1.用VS2008打开Vb6.0的工程(此时针对语言层面自动升级). 注: VS更新多版了(当前最新VS2017),用最新版再打开2008升级后的工程的时候还是会有自动升级,相 ...
- 浅谈Android选项卡(三)
上一节介绍了TabActivity的简单用法,但是现在的Api中已经不建议使用了,建议使用Fragment来替代以上的功能,下面介绍下使用Fragment和ViewPager的结合使用. http:/ ...
- Lucene7.4学习和简单使用
简述: 前面从新回顾学习了Solr,正好也借此机会顺便学习一下Lucene. 一.什么是Lucene? 全文检索的一个实现方式,也是非结构化数据查询的方法.应用场景:在数据量大,数据结构不固定的时候, ...
- Asp.net的生命周期之页生命周期
参考:http://msdn.microsoft.com/zh-cn/library/ms178472%28v=vs.100%29.aspx http://msdn.microsoft.com/zh- ...