javaScript 工作必知(十一) 数组常用方法实现
大纲
Array
join
reverse反转
sort排序
concat 拼接
slice
splice
数组
//定义数组
var a = [];
//使用Array定义一个数组,
var a1 = new Array(1);
//模仿多维数组
a1[0] = new Array(1);
a1[0][0] = 1;
a.push(1);//添加数组
alert(0 in a);//true
var b = a.pop();//读出元素,并删除a数组元素。
alert(0 in a);//false
a.push(2);
delete a[0];//删除属性
alert(0 in a);//false
join
将数组转成字符串,如果不指定链接方式,默认是,
var a = [1, 2, 3];
var str = a.join();
var str1 = a.join("<>");
alert(str);//1,2,3
alert(str1);//1<>2<>3
reverse 反转
将数组的元素进行反转,改变原来数组的元素顺序,不是创建新的数组。如:
var a = [1, 2, 3];
a.reverse();
var str = a.join();
alert(str);//3,2,1
sort排序
var a = [3, 5, 9, 1, 6];
a.sort();//默认是按字符顺序排序的
for (var i = 0; i < a.length; i++) {
alert(a[i]);
}//1,3,5,6,9
a.sort(function (a, b) { return b-a;})
//添加
for (var i = 0; i < a.length; i++) {
alert(a[i]);
}//9,6,5,3,1
sort 排序,如果默认则是按照字母表顺序排序,如果按照自己方式排序,必须给一个匿名函数,假设一个参数在前,则返回一个小于0 的值,假设一个参数在后,则返回一个大于0的值。
concat拼接
concat 拼接数组,并不改变原数组,返回一个新数组,也不改变拼接数组结构。
var a = [1, 2, 3];
var o = [3, 4, 5];
var c = a.concat(o);
alert(a.join());//1,2,3
alert(o.join());//3,4,5
alert(c.join());//1,2,3,3,4,5
slice
返回一段数组。slice函数中开始位置包括第一个参数,但不包括第二个参数,。
-1 表示是数组元素最后一个元素,一次类推。不改变原数组。
var a = [1, 2, 3];
a.slice(0, 2);//1,2
a.slice(1);//2,3
a.slice(-1);//3
a.slice(-2, -1);//2
splice
splice 插入或删除元素,改变原数组。
第一个参数表示删除的位置起始点,
第二个参数表示删除元数的个数,
第三个参数或任意个表示插入的元素。注意,这时第一个参数同时也表示插入的元素的位置。
var a = [1, 2, 3, 4, 5];
alert(a.splice(1, 2).join());//2,3 a=[1,4,5]
alert(a.splice(1).join());//4,5 a=[1];
alert(a.splice(-1, 1).join()); 1 a=[];
var o = [2, 4];
o.splice(2, 0, 1, 2)// 删除[] o=[2,4,1,2];
alert(o.join());
o.splice(2, 0, [3,[12,32], 2], 4).join()//删除[] o=[2,4,[3,[12,32],2],3,1,2
alert(o.join());
javaScript 工作必知(十一) 数组常用方法实现的更多相关文章
- JavaScript 工作必知(九)function 说起 闭包问题
大纲 Function Caller 返回函数调用者 Callee 调用自身 作用域 闭包 function 函数格式 function getPrototyNames(o,/*optional*/ ...
- javaScript 工作必知(六) delete in instanceof
in in 判断 左边 的字符串或者能转换成字符串的是否属于 右边 的属性. var data = { x: 1, y: 4 };//定义了直接对象 alert("x" in d ...
- javaScript 工作必知(三) String .的方法从何而来?
String 我们知道javascript 包括:number,string,boolean,null,undefined 基本类型和Object 类型. 在我的认知中,方法属性应该是对象才可以具有的 ...
- javaScript 工作必知(五) eval 的使用
eval eval(parse) parse :里面跟参数字符串,我们知道执行javascript 会编译执行, 改变全局变量的值: var x = 2; //定义的全局变量 alert(x); ...
- javascript 工作必知(四) 类型转换
string和number boolean javascript 类型会根据赋值的进行转成相应的类型. var str = ""; alert(typeof (str));//st ...
- javaScript 工作必知(十) call apply bind
call 每个func 都会继承call apply等方法. function print(mesage) { console.log(mesage); return mesage; } print ...
- javaScript 工作必知(八) 属性的特性 值、写、枚举、可配置
属性的特性 每个对象都拥有属性,属性具有哪些特性呢? 1.属性具有值. 2.属性是否是可写的. 3.是否是可枚举的. 4.是否是可配置的. " ...
- javaScript 工作必知(七) 对象继承
对象继承inherit var o = { r: 1 }; var c = function f() { }; c.prototype = o; c.r = 3; alert(o.r);//被继承的属 ...
- javaScript 工作必知(二) null 和undefined
null null 表示个“空” , 使用typeof (null) ;//Object ; 说明他是一个特殊的对象. null 类型只自己唯一个成员.他是不包含属性和方法的. undefined u ...
随机推荐
- JBPM学习第2篇:为Eclipse添加JBPM开发支持
1.Eclipse添加JBoss支持插件 参考:Eclipse添加JBoss支持 若已安装,直接跳过! 2.Eclipse添加Drools插件 jbpm-installer-full解压后的文件夹中找 ...
- js表单快速取值/赋值 快速生成下拉框
1.表单取值/赋值公共方法 //表单序列化:文本框的name字段和数据源一致<form id="myForm" onsubmit="return false;&qu ...
- xunsearch bsd 10.1安装心酸路。。。
cc -c -I/usr/local/xunsearch/include/ test.cpp cc test.o -L/usr/local/xunsearch/lib -lscws -lm -o te ...
- sprintf详解
原文:http://www.cnblogs.com/wqlblogger/archive/2007/01/09/615525.html 转摘声明:选自<CSDN 社区电子杂志——C/C++杂志& ...
- 【Python】区分List 和String
区分String和list String can't mutate 每次变更实质上开辟新的资源 List 可变更 警惕指针
- 弧形菜单(Android)
弧形菜单(Android) 前言:公司需求,自己写的一个弧形菜单! 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:1.自定义控件,2.事件分发等 部分代 ...
- Vue2.0的动画效果
本文只是结合一些代码和图片加强对Vue动画的理解,更多资料请戳这里 结合原生CSS实现动画 下面是一张图片,简单清晰明了是吧^-^ 下面是一段代码 <!DOCTYPE html> < ...
- HTTP协议(持续更新)
http请求由三部分组成,分别是:请求行.消息报头.请求正文 HTTP(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接 ...
- 如何使用idea把web项目打成war包
如果是maven项目,打成war包很容易,如果是web项目,需要这样子 1. 2. 3. output directory是war包的目录 4.重新选择 第一步的操作,选择build即可.
- Batch Normalization 笔记
原理 BN的效果 Why BN works? 原理 输入层可以归一化,那么其他层也应该可以归一化.但是有个重要的问题,为什么要引入beta和gamma. 为什么要引入beta和gamma 不总是要标准 ...