网易前端微专业,JavaScript程序设计基础篇:数组
不论什么一种语言数组都是比較重要的,其作为一种基础对象应用非常多,如Java你肯定少不了集合(List,Map)这些。因此本篇主要记录JS的数组使用和经常用法。要点例如以下:
1,数组创建
两种方式:
var stu = new Array();
var stu1 = [];这就和定义对象一样:
var cat = new Object();
var cat1 = {};推荐用后者,比較简洁。如:
var score = [1, 2, 3];数组里的东西能够是不同类型的,数组里面能够是基础类型也能够是对象或数组:
var array = [
163,
"netease",
{color: "red"},
[],
true
];
console.log(array[0]);
console.log(array[2].color);再来个:
2,length()函数,得到数组的长度
var stu = [
{id:1, score : 80},
{id:2, score : 75},
{id:3, score : 90},
];
console.log(stu.length); // 3
stu = [];
console.log(stu.length); //0通过stu[i]訪问并改动第i个元素.
3,indexof()函数。假设能找到返回找到的索引,找不到返回-1。勇于推断一个元素在不在数组里
var tel = [101, 110, 139];
var index = tel.indexOf(101);
console.log(index);4,forEach()函数forEach 须要接受一个回调函数var stu = [
{id:1, score : 80},
{id:2, score : 75},
{id:3, score : 90},
];
var add5 = function(item, number, array){
item.score += 5;
};
stu.forEach(add5);
console.log(stu[0].score);这个回调对输入參数有要求,各自是当前的item,item的索引和整个array.forEach就会自己主动遍历每一行,然后将每一行都送给callback函数进行处理。
5,reverse()函数,将数组倒序var stu = [
{id:1, score : 80},
{id:2, score : 75},
{id:3, score : 90},
];
stu.reverse();
console.log(stu[0].score);6,array.sort()函数。该函数传入一个callback,很相似java的排序var stu = [
{id:1, score : 80},
{id:2, score : 75},
{id:3, score : 90},
];
var bySocre = function(a, b){
return b.score - a.score;
}
stu.sort(bySocre);
var print_callback = function(item, number, array){
console.log(item.score);
}
stu.forEach(print_callback);备注:
a,假设callback里返回false。则a排在b的前面。 假设return的是b - a,则是从大到小排,反之是从小到大排。b,sort直接改变了原数组。c,假设callback不传,则依照unicode码自小到大排序:var names = ["yanzi", "gg", "ww"];
names.sort();
var print_callback = function(item, number, array){
console.log(item);
}
names.forEach(print_callback);7,array.push()在已有数组末尾后面加元素。能够加多个。8,array.unshift()在数组的開始位置加入元素。演示样例代码:var stu = [
{id:1, score : 80},
{id:2, score : 75},
{id:3, score : 90},
];
stu.push({id:4, score:100});
stu.unshift({id:5, score:99});
var print_callback = function(item, number, array){
console.log(item.id);
}
stu.forEach(print_callback);9,array.shift() 返回第一个元素,同一时候在原数组里删除第一个元素。10,array.pop() 返回最后一个元素。同一时候在原数组里删除最后一个元素。11,array.splice(a, b, C)须要传入三个參数,各自是从位置a開始,删除b个元素,然后插入元素C。C能够是多个演示样例代码:var stu = [
{id:1, score : 80},
{id:2, score : 75},
{id:3, score : 90},
];
stu.splice(1,1,{id : 5, score:100});
var print_callback = function(item, number, array){
console.log(item.id);
}
stu.forEach(print_callback);备注:假设splice第三个參数不传入,则仅仅删除。假设第二个參数传0。则仅仅插入,不删除。
总结:reverse,sort, push, unshift, shift, pop, splice都有一个共同特点,都改变了原来的数组。12,array.slice(start, end)从索引start到end-1拷贝出来一份返回。 假设end參数不传。则截取到最后一个位置。13,array.concat(a, b):将数组a和数组b连接到一起。14,array.join(a)对array每一个元素用a拼接起来。假设什么都不传。默认用。号进行切割。15。array.map()需传入一个回调,回调须要return,默认将return的东西push到一个新的array.var scores = [80, 75, 90]; var addScore = function(item, index, array){
return item + 5;
}
var scoresNew = scores.map(addScore);
var print_callback = function(item, number, array){
console.log(item);
}
scoresNew.forEach(print_callback);16,array.reduce()须要一个callback作为參数,callback(preResult, item, index, array),看一个求和的样例.var scores = [80, 75, 90]; var sum = function(preresult, item, number, array){
return preresult + item;
}
var sum2 = scores.reduce(sum, 0);
console.log(sum2);总结:slice, concat, join, map, reduce不会改动原数组。
网易前端微专业,JavaScript程序设计基础篇:数组的更多相关文章
- java程序设计基础篇 复习笔记 第一单元
		
java语言程序设计基础篇笔记1. 几种有名的语言COBOL:商业应用FORTRAN:数学运算BASIC:易学易用Visual Basic,Delphi:图形用户界面C:汇编语言的强大功能和易学性,可 ...
 - Java语言程序设计基础篇第10版第5章习题答案
		
5.1 1 public class Demo { public static void main(String[] args) { // 创建一个输入对象 java.util.Scanner inp ...
 - java程序设计基础篇 复习笔记 第二单元
		
1原始数据类型(primitive data type) == 基本类型 (fundamental type)byte short int long float double char boolean ...
 - java程序设计基础篇 复习笔记 第七单元&&第八单元
		
7.1 int[][] triArray{ {1}, {1,2}, {1,2,3}, }; 7.2 array[2].length 8.1 Unified Modeling Language:UML ...
 - java程序设计基础篇 复习笔记 第六单元
		
第六章 一维数组 1 数组初始化语法 array initializer 2 for each loop 3 off-by-one error 通常是在循环中该使用<的地方使用了<= 4 ...
 - java程序设计基础篇 复习笔记 第五单元
		
1. method header: modifier, return value type, method signature(method name, parameter) method body ...
 - java程序设计基础篇 复习笔记 第四单元
		
1 think before coding code incrementally 2 sentinel value sentinel-controlled loop 3 输入输出重定向 > &l ...
 - java程序设计基础篇 复习笔记 第三单元
		
1 单向if语句 双向if语句 dangling else switch:char,byte,short,int 2 javax.swing.JOptionPane.showConfirmDialog ...
 - Web安全工程师(网易微专业Web安全学习笔记)
		
本篇笔记的配套视频:网易云课堂,微专业/web安全工程师. 一.WEB基础知识 1.1 Web简介 1.1.1 Web介绍 1)web的发展 web1.0:以内容为中心,网站提供内容信息,用户进行访问 ...
 
随机推荐
- native.js是什么且如何使用
			
native.js是什么且如何使用 一.总结 一句话总结:Native.js技术,简称NJS,是一种将手机操作系统的原生对象转义,映射为JS对象,在JS里编写原生代码的技术.Native.js不是一个 ...
 - thinkphp杂项功能(主干)
			
thinkphp杂项功能(主干) 一.总结 1.杂项功能:杂项里面我需要有点印象的是五个:缓存,多语言,图像处理,文件处理,单元测试 二.thinkphp杂项功能(主干) thinkphp扩展杂项功能 ...
 - Redis  .Net客户端源码
			
1.简单介绍 当前NoSql使用已经极为普遍,无论是Java生态圈,还是.net生态圈.大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.主流的技术有:H ...
 - IntelliJ IDEA 2018 Community(社区版)创建J2EE项目+Tomcat9部署
			
博主打算开始系统地自学JAVA,首要问题就是解决IDE的问题, 以前用过像VS.Android Studio.Eclipse,知道Eclipse是JAVA最传统的IDE, 用过VS和AS的朋友都知道, ...
 - Akka边学边写(4)-- MiniRPG
			
前面几篇文章用Akka写了HelloWorld和EchoServer,为了更进一步学习Akka,本文将会实现一个非常小的RPG游戏server:MiniRPG. 游戏逻辑 由于是迷你RPG,所以逻辑非 ...
 - Scala入门到精通——第二十九节 Scala数据库编程
			
本节主要内容 Scala Mavenproject的创建 Scala JDBC方式訪问MySQL Slick简单介绍 Slick数据库编程实战 SQL与Slick相互转换 本课程在多数内容是在官方教程 ...
 - iOS中 学会如何对sqlite3 进行封装
			
#waring ---(看官注意) ---使用说明: ①在创建自定义model类之前让该类继承自文件中的Model类, ②为model类选一个NSString属性作为主键:(既,在初始化方法里面将从父 ...
 - COOKIE传值
			
1.遍历所有cookie foreach (string _key in Request.Cookies.AllKeys)//遍历主键 { Htt ...
 - vc 常用语句
			
1) CMainFrame* pmainframe=(CMainFrame*)AfxGetMainWnd();CChildFrame *m_finderframe=(CChildFrame*)pmai ...
 - 原生js大总结十
			
91.ajax的优点 a.提高运行效率 b.提高用户体验,让多件事情同时发生 c.在不刷新页面的情况下可以对局部数据进行加载和刷新 92.ajax请求的流程 1.创建通 ...