js 数组常用的操作函数整理
平时多做企业应用开发,抱着实用为主,对前端技术理解得比较肤浅,下面就是肤浅地对 js 数组的属性和方法及对它操作的 jquery 方法做些记录;
js 数组是 js 内建的一个非常强大数据类型,由于 js 是弱类型语言,所以一个数组可以保存多种类型的数据: 数字、字符串、对象、函数、布尔... ...;
var arr = [1,{name:'Jonh',id:1001}, function(){console.log('test');},'hello world',true];
常用访问数组元素的方法:
for 和 for-in 在循环时,如果数组大小做了改变,使用起来会有所区别;
var testArr1 = [1,2,3,4,5]; // for, 因为 testArr1.length 是一个常数 5, 循环过程 testArr1 大小变了,循环次数还是 5;
for(var i = 0; i < testArr1.length; ++i){
if(i == 3) testArr1.push(6); // 添加一个元素;
console.log(testArr1[i]); // 访问不到新加的元素 6;
} var testArr2 = [1,2,3,4,5]; // for-in 如果循环过程中 testArr2 的大小变了, i 如果大于了改动后的 testArr2.length,会马上终止循环
for(var i in tsetArr2){
if(i==3)testArr2.push(6); // 添加一个元素;
console.log(testArr2[i]); // 可访问到新加的元素 6;
}
jquery 循环: $.each, $.grep, $.map 与 for 最大不同是循环过程不能退出,即一定会访问数组中的每个元素到结束;而for 可以用 break 中断循环;
var testArr = [1,2,3]; //访问数组元素;
$.each(arr,function(index,elem){
}); // 返回符合条件的元素,组成一个新的数组;
//注意 function(elem,index) 第一个实参是元素,第二个才是元素的索引
var newArr = $.grep(arr,function(elem,index){
//condition
return elem==1 or elem ==2;
});
// newArr is [1,2] // 返回任意新的数组元素,组成 一个新的数组;
var newArr = $.map(arr,function(index,elem){
return 'test-' + index;
});
// newArr is ['test-1','test-2','test-3'];
识别数组:
// 数组是一种特殊的 object 类型,typeof 拿到的只是 object;
typeof arr; // => object // 可用下面 2 种方法判断对象是否为数组
arr.constructor.toString().indexOf('Array') > 0
// 或
Object.prototype.toString.call(arr) == '[object Array]'
常用方法:
// join 将数组中的元素组合成一个字段串,元素之间用指定的字符串连接起来;
arr.join(','); //"1,[object Object],function (){console.log('test');},hello world,true" // push 向数组添加新的元素, 数组改变;
arr.push('new'); // pop 弹出最后一个元素,数组改变;
arr.pop(); // 'new' // slice(startIdx, count) 获取数组中一段连续的元素,组成一个新的数组;startIdx 开始索引,count 数量;
arr.slice(0,1); //[1]; // splice(startIdx,count,otherElems) 有强大的功能,包括: 插入,替换,删除;startIdx 开始索引, count (替换,删除)数量, 数组改变并返回一个新的数组;
// 替换
var testArr = [1,2,3,4,5];
var retArr = testArr.splice(0,2,7,8,9);//retArr is [1,2], testArr is [7,8,9,3,4,5], "7,8,9" 是替换 "1,2";
// 删除,省略 otherElems 就是删除
var testArr = [1,2,3,4,5];
testArr.splice(0,2); // testArr is [3,4,5];
//插入,将 count =0 ,即不作替换直接插入
var testArr = [1,2,3,4,5];
testArr.splice(2,0,7,8,9); //testArr is [1,2,7,8,9,3,4,5];
js 数组常用的操作函数整理的更多相关文章
- JS 数组相关的操作函数
// 1.数组拼接 concat() var a = [1, 2]; var b = [3, 4]; console.log(a.concat(b)); // [1, 2, 3, 4] // 2.数组 ...
- JS 数组间的操作
JS 数组间的操作(交集,并集.差集) 以下是js数组之间常用的操作,如交集,并集.差集等. 迭代 each是一个集合迭代函数,可以将一个函数作为参数和一组可以选的参数.依次将集合的每一个元素和可选参 ...
- js原生的url操作函数,及使用方法。(附:下边还有jquery对url里的中文解码函数)
js原生的url操作函数,完善的. /*****************************/ /* 动态修改url */ /*****************************/ var ...
- 常用的WinAPI函数整理
常用的WinAPI函数整理 一.进程 创建进程: CreateProcess("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&s ...
- js数组常用操作方法小结(增加,删除,合并,分割等)
本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shi ...
- MATLAB 常用形态学操作函数
常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...
- [转载]c++常用字符串操作函数
原文地址:c++常用字符串操作函数作者:Valsun 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source ...
- php课程 4-17 数组键值操作函数有哪些
php课程 4-17 数组键值操作函数有哪些 一.总结 一句话总结:多看学习视频 1.php中数组的键值操作函数有哪6个? • array_values();获取数组中的值• array_keys( ...
- js中常用的操作
1.js中常用的数组操作 2.js中常用的字符串操作 3.js中常用的时间日期操作 4.定时器
随机推荐
- 防止tab页重复的去请求服务端
直接看图吧. 左边是企业树,右边是依据企业变化的一个tab页 实现功能:1.我们希望假设选中的企业不变,我们在切换旁边五个tab页的时候,仅仅是第一次进去的时候请求server端.以下来回切换tab页 ...
- leetcode[164] Maximum Gap
梅西刚梅开二度,我也记一题. 在一个没排序的数组里,找出排序后的相邻数字的最大差值. 要求用线性时间和空间. 如果用nlgn的话,直接排序然后判断就可以了.so easy class Solution ...
- 几乎没用到过的css 样式
1. :focus 选择器用于选取获得焦点的元素. 案例:http://www.w3school.com.cn/tiy/t.asp?f=css_sel_focus 2. clearfix清除浮动闭合 ...
- 解决ZF2_PATH environment
本方法基于:ZendFramework 2.1.4版本在WIN7下构建,其他版本的安装方式相差不大. 操作之前您需要搭建好PHP运行环境,保证PHP版本不低于PHP 5.3.3,并且去http://f ...
- sql汉字转拼音
/*创建取拼音首字母函数*/ create function [dbo].[fn_ChineseToSpell](@strChinese varchar(500)='') returns varcha ...
- Bootstrap导航悬浮顶部,stickUp
stickUp 一个 jQuery 插件 这是一个简单的jQuery插件,它能让页面目标元素 “固定” 在浏览器窗口的顶部,即便页面在滚动,目标元素仍然能出现在设定的位置.此插件可以在多页面的网站上工 ...
- 关于wcf跨机器访问的问题
在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话不多说了,正文如下: 1 ...
- 用邻接表或vector实现存边以及具体如何调用[模板]
存边: 对于指针实现的邻接表: struct edge{ int from,next,to,w; }E[maxn]; int head[maxn],tot=0;//head初始化为-1: void a ...
- 随机函数Surprising
之前写了个用来抽取1-54号的随机函数,发现30-40出现的情况很大,就在果壳上提问了一下//听取了某个大神的建议循环了10000次之后惊喜的发现这样写出现了一大堆相同的数字! 之后有个很神大牛解答了 ...
- 企业架构研究总结(39)——TOGAF架构能力框架之架构委员会和架构合规性
3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要干系人的需求,并且通常还需要对整个架构的审查及维 ...