API --Array
来源:互联网 发布:仓库货物记账软件 编辑:程序博客网 时间:2024/06/06 00:52
Array
arr.join(); 连接,返回按指定格式连接的数组
var arr=[1,2,3,4,5,6];console.log(arr.join()); //1,2,3,4,5,6console.log( arr.join('')); //123456console.log(arr.join('%')); //1%2%3%4%5%6console.log(arr.join('&|')); //1&|2&|3&|4&|5&|6
arr.concat(); 拼接,返回新的数组
console.log( arr.concat('a','b',9,[5,[6,7]]));//[ 1, 2, 3, 4, 5, 6, 'a', 'b', 9, 5, [ 6, 7 ] ]//无法打散嵌套的数组。
arr.slice(); 选取,返回新的
/* arr.slice(start, end+1); 选取从start位置到end位置,注意+1, 省略第二个参数默认到最末尾。 */var arr=[1,2,3,4,5,6];console.log( arr.slice(1,3)); //[ 2, 3 ]console.log(arr.slice(2)); //[ 3, 4, 5, 6 ]console.log(arr.slice()); //[ 1, 2, 3, 4, 5, 6 ]//-----支持负数,表示倒数第几个。console.log( arr.slice(1,-2)); //[ 2, 3, 4 ]console.log(arr.slice(-5,-2)); //[ 2, 3, 4 ]console.log(arr.slice(-4)); //[ 3, 4, 5, 6 ]
arr.splice(); 切割,直接修改原数组!
/*arr.splice(start,n); //--从start删n个,返回值:被删除元素组成的临时子数组var arr=[1,2,3,4,5,6];console.log( arr.splice(0,3) ); //[ 1, 2, 3 ]console.log(arr); //[ 4, 5, 6 ]//--插入新值 arr.splice(start,0,v1,v2,...); 不能打散数组。console.log(arr.splice(1,0,9,[8,7],'a')); //[]console.log(arr); //[4, 9, [8,7], 'a', 5, 6 ]//--删除的同时插入新值。arr.splice(start,n,v1,v2,...);类似上面var arr=[1,2,3,4,5,6]console.log(arr.splice(2,3,9,[8,7],'a')); //[ 3, 4, 5 ]console.log(arr); //[ 1, 2, 9, [ 8, 7 ], 'a', 6 ]
arr.sort(); 排序,直接修改原数组!
console.log( [2,4,3,5,1,6].sort()); //[ 1, 2, 3, 4, 5, 6 ]/--sort默认会将每个元素先转为string,再按字符串类型比较大小console.log([1,12,'3','23','21',3,5,2].sort());//[ 1, 12, 2, '21', '23', '3', 3, 5 ]//--定义比较器函数console.log([1,12,'3','23','21',3,5,2].sort((a,b)=>(a-b)));//[ 1, 2, '3', 3, 5, 12, '21', '23' ]console.log([1,12,'3','23','21',3,5,2].sort((a,b)=>(b-a)));//[ '23', '21', 12, 5, '3', 3, 2, 1 ]
arr.reverse(); 翻转,直接改原数组!
var arr=[1,2,3,4,5,6];console.log(arr.reverse()); //[6,5,4,3,2,1]console.log(arr); //[6,5,4,3,2,1]console.log([1,12,'3','23','21',3,5,2].reverse());//[ 2, 5, 3, '21', '23', '3', 12, 1 ]
arr.push(); 数组尾部加一个
console.log(arr.push(7)); //7console.log(arr); //[1,2,3,4,5,6,7]
arr.pop();数组尾部减一个
var arr=[1,2,3,4,5,6];console.log(arr.pop()); //6console.log(arr); //[ 1, 2, 3, 4, 5 ]
arr.unshift();数组头部加一个
console.log(arr.unshift(7)); //7console.log(arr); //[ 7, 1, 2, 3, 4, 5, 6 ]
arr.shift();数组头部减一个
console.log(arr.shift()); //1console.log(arr); //[ 2, 3, 4, 5, 6 ]
二维访问: arr[r][c]
注意: 二维数组的行下标r不能越界
遍历: 外层循环控制行,内层循环控制列
ES5新方法 –犀牛书
foreach()
var arr=[1,2,3,'a',[4,5],{age:18}];arr.forEach(function (value, key, arr) { console.log(arr[key]); console.log(value);})/*函数通常只需第一个参数,以上两个的输出是一样的,输出数组的每个值 1 2 3 'a' [4,5] {age:18}*/arr.forEach(function (value) { console.log(value); if(value===3){ // throw new Error('manual stop'); return ; }})/*想在value等于3时跳出遍历,但写return无效,运行还是会输出所有的值 暂未想明白。先留一下。如果改成throw new Error 输出1 2 3 然后抛出错误。*/
map()
/* 调用数组每个元素传给指定的函数,并返回一个数组 */var arr=[1,2,3,4,5,6];var n= arr.map((x)=>{ return x*x;})console.log(n); //[ 1, 4, 9, 16, 25, 36 ]console.log(arr); //[1,2,3,4,5,6]
filter()
/* 会跳过稀疏数组中缺少的元素,总是返回稠密的数组*/var arr=[1,2,3,4,5,6];var a = arr.filter( (x)=> x<4 )console.log(a); //[1,2,3]//压缩空缺删除undefined nullvar arr=[1,2,3,4,5,6,null, ,];var a = arr.filter( (x)=> x!==undefined&&x!=null )console.log(a); //[ 1, 2, 3, 4, 5, 6 ]
every()
var arr=[1,2,3,2,3,4,1];console.log( arr.every((x)=> x<10)); //ture arr中每一个数都小于10吗? 恩 是的。 console.log( arr.every((x)=> x<3)); //fasle arr中每一个数都小于3吗? 不 不是的。
some()
var arr=[1,2,3,2,3,4,1];console.log( arr.some((x)=> x>10));//false arr中有大于10的数吗? 没有! console.log( arr.some((x)=> x<3));//true arr中有小于3的数吗? 有!
indexOf()
//返回找到的第一个元素的下标,没找到返回-1。从前 往后找var arr=[1,2,3,2,3,4,1];console.log(arr.lastIndexOf(3)); //4console.log(arr.indexOf(3)); //2
lastIndexOf()
//返回找到的第一个元素的下标,没找到返回-1。 从后 往前找var arr=[1,2,3,2,3,4,1];console.log(arr.lastIndexOf(3)); //4console.log(arr.indexOf(3)); //2
reduce()
var arr=[1,2,3,2,3,4,1];console.log( arr.reduce( (x,y)=>x+y, 100) ); // 116 即100+1+2+3+2+3+4+1console.log( arr.reduce( (x,y)=>x*y, 1));// 144 即1*2*3*2*3*4*1/*第一次调用时:reduce第一个参数是初始值 就是传给reduce的第二个参数 此处为100。 再把数组的第一个值传给y此时相当于: function(100,1){ return 100+1 } 接下来的调用 把上一步return的结果,传给x, 数组的下一个元素传给y function(101,2) {return 101+2} 重复进行 最后求得结果。*/
reduceRight()
同上reduce 只是倒过来算 1+2+3 ==> 3+2+1 //更多用法再见犀牛书 o(╯□╰)o
Array.isArray()
//判断是否为数组console.log(Array.isArray([])); //trueconsole.log(Array.isArray({})); //false//在ES3中可以这么写var isArray = Function.isArray || function(o){ reture typeof o === "object" && Object.prototype.toString.call(o) ==="[object Array]"}
++其他,把字符串当只读数组看待。用Array.isArray()判断会返回false
for(var i=0; i<'abcd'.length; i++){ console.log('abcd'[i]);}// a b c d
阅读全文
0 0
- API --Array
- JavaScript Array API
- Dojo Api 之 Array处理
- grape api参数为array
- Array的内置方法api
- EXT核心API详解(二)Array类
- Ruby中Array的常用API总结
- JDK8 API——java.sql.Array
- javascript 数组(Array对象/数组API)
- android sdk | API level 24 | R.array
- EXT核心API详解(二)-Array/Date/Function/Number/String
- EXT核心API详解(二)Array、Number、Date、Function类
- EXT核心API详解(二)-Array/Date/Function/Number/String
- EXT核心API详解(二)-Array/Date/Function/Number/String
- EXT核心API详解(二)-Array/Date/Function/Number/String
- API Demos 2.3 学习笔记 (20)-- Views->Lists->Array
- EXT核心API详解(二)-Array/Date/Function/Number/S
- ES6学习——新加API:Array
- jquery validate问题
- gdb调试程序实例
- 串口调试助手 ubuntu桌面版
- git常用命令
- hadoop,hbase,hive,zookeeper版本整合兼容性问题总结
- API --Array
- mysql 常用函数
- 中国首位职业慈善家卢星宇来榆林演讲
- 线程池
- 对比线程安全和可重入函数
- 面试基础知识漫谈(参考)
- 【脚本语言系列】关于Python操作数据文本字符串,你需要知道的事
- 一个简单的C++内存管理与引用计数指针
- JDK、Maven环境变量配置