js学习笔记13----数组的操作
1.数组的定义
格式1:var arr=[1,2,3];
格式2:var arr=new Array(1,2,3); //new可以省略
注意:var arr=new Array(4);如果你里面只写了一个数字,代表arr的长度为4
2.length属性的特性:不仅可以返回字符串的长度,还可以移除或者添加新项
var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];
移除项示例:
arr2.length=4;
console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪"]
增加项示例:
arr2[arr2.length]='冰淇淋';
console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪", "牛肉丸", "冰淇淋"]
arr2[10]='冰淇淋';
console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪", "牛肉丸",,,,,, "冰淇淋"],此时数组的长度为11
清空数组的方法:
方法1:arr.length=0; //方法较简单,字符串的length属性不可写!!!
方法2:arr=[]; //处理效率更高
3.数组添加内容的方法:
var arr=[1,2,3];
方法1:push():从后开始添加数据
console.log(arr.push('aa')); //返回结果4,代表新的数组的长度
console.log(arr);//返回结果[1,2,3,'aa']
方法2:unshift():往前开始添加数据
console.log(arr.unshift('aa')); //返回结果4,代表新的数组的长度,IE7及以下不支持
console.log(arr);//返回结果['aa',1,2,3,]
4.数组去掉内容的方法
var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];
方法1:pop():从后开始扔掉数据
console.log(arr2.pop()); //返回‘牛肉丸’,即数组最后一项
console.log(arr2);//返回结果["包子", "卤肉卷", "卤豆腐", "鸡爪"]
方法2:shift():往前开始扔掉数据
console.log(arr2.shift()); //返回‘包子’,即数组第一项
console.log(arr2);//返回数组["卤肉卷", "卤豆腐", "鸡爪", "牛肉丸"]
5.splice()方法:
该方法可以同时实现删除,插入,替换的功能。始终会返回一个数组,数组包含了从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)。
删除:指定2个参数,即要删除的第一项位置和要删除的基数。
插入:指定3个参数:起始位置、0和要插入的项。
替换:指定3个参数:起始位置、要删除的项数和要插入的项。
var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];
var removed = arr2.splice(0,2);
console.log(removed); //返回"['包子','卤肉卷',]"
console.log(arr2); //返回"['卤豆腐','鸡爪','牛肉丸']"
var removed = arr2.splice(1,0,"糖油粑粑","臭豆腐");
console.log(removed); //返回"[]"
console.log(arr2); //返回"['卤豆腐','糖油粑粑','臭豆腐','鸡爪','牛肉丸']"
var removed = arr2.splice(2,1,"麻油猪血","酸辣粉");
console.log(removed); //返回"['臭豆腐']"
console.log(arr2); //返回"['卤豆腐','糖油粑粑','麻油猪血','酸辣粉',鸡爪','牛肉丸']"
6.数组去重:
var arr3 = [1,5,5,8,7,4,5];
for(var i=0;i<arr3.length;i++){
for(var j=i+1;j<arr3.length;j++){
if(arr3[i] == arr3[j]){
arr3.splice(j,1);
j--;
}
}
}
console.log(arr3);//返回"[1, 5, 8, 7, 4]"
7.重排序方法
reverse():反转数组项的顺序
var arr4 = [1,2,8,4,5,'bb','123',32];
console.log(arr4.reverse()); //返回"[32, "123", "bb", 5, 4, 8, 2, 1]"
sort():默认情况按升序排列数组,它比较的是字符串。此方法可以接收一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。
//升序
function ascCompare(val1 , val2){
if(val1 < val2){
return -1;
}else if(val1 > val2){
return 1;
}else{
return 0;
}
}
//降序
function descCompare(val1 , val2){
if(val1 < val2){
return 1;
}else if(val1 > val2){
return -1;
}else{
return 0;
}
}
//对于数值类型可以用更简单的比较函数
function numCompare(val1 , val2){
return val1-val2; //升序
//return val2-val1; 降序序
}
var arr6 = [1,2,8,4,5,32];
console.log(arr6.sort(ascCompare)); //返回'[1, 2, 4, 5, 8, 32]'
console.log(arr6.sort(descCompare)); //返回'[32, 8, 5, 4, 2, 1]'
8.concat():
数组的拼接,传递给concat()方法可以是数组,也可以是字符串。
var colors=['red','green','blue'];
var colors2 = colors.concat("yellow",["back","brown"]);
console.log(colors2); //返回'["red", "green", "blue", "yellow", "back", "brown"]'
js学习笔记13----数组的操作的更多相关文章
- JS学习笔记 (四) 数组进阶
1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...
- PHP学习笔记之数组游标操作
数组有N个单元,同时只能操作一个单元.比如循环时,只能一个一个单元读取他的值. 那么数组是怎么记住刚才读取的是哪个单元,接着读取下个单元的呢? 在数组内部,有一个指针,指针指向某一个单元. 每循环一个 ...
- [前端JS学习笔记]JavaScript 数组
一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...
- 【学习】js学习笔记:数组(二)
二维数组 例子:矩形反转: <script> var arr=[[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],[5,5,5,5,5]]; ...
- 【学习】js学习笔记:数组(一)
1.创建数组并赋值 //对象方式 var arr=new Array(1,2,3,4); //隐形声明方式 var arr2=[5,6,7,8]; 2.数组可以存储任何类型的数据 3.访问数组,是用下 ...
- js学习笔记18----元素创建操作
1.父级.appendChild(新的元素) 从后面开始追加子元素. 2.父级.insertBefore(新的元素,被插入的元素) 在指定元素前面开始插入一个新元素. 兼容性:在ie下,如果第二个参数 ...
- js学习笔记16----父节点的操作
1.元素.parentNode : 只读属性,获取当前元素的父节点. 2.元素.offsetParent : 只读属性,获取离当前元素最近的一个有定位属性(position为relative或者abs ...
- Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...
- Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法
Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法 这篇笔记将介绍如何使用Ext.Net GridPanel 中使用Sorter. 默认情况下,Ext.Net GridP ...
随机推荐
- GL_总账会计科目追寻SLA及子模组
相信做总账的学友们,一般很多时间都会花费在查询日记账的来源,因为R12多了一个SLA模组,又有些增加了追溯日记账的难度,个人整理了一下 11i过账方式: 子模组-> 总账 (Post Journ ...
- Android:GridView中实现点击Item变色,再点击还原。
使用GridView时想实现点击其中的一个Item,该Item改变背景,再次点击Item变回原来的背景,网上搜了很多资料都没有看到类似的案例,但还是有所启发,现来分享我的做法. 首先,首先为GridV ...
- Python 多进程 一分钟下载二百张图片 是什么样子的体验
需要爬取国内某个网站,但是这个网站封ip,没办法,只能用代理了,然后构建自己的代理池,代理池维护了20条进程, 所用的网络是20M带宽,实际的网速能达到2.5M,考虑到其他原因,网速未必能达到那么多. ...
- 找到当前mysql group replication 环境的primary结点
一.起原: mysql group replication 有两种模式.第一种是single primary 也就是说单个primary .这个模式下只有这一个主可以写入: 第二种是multi pri ...
- 在C#中使用WMI查询进程的用户信息
这是一个使用WMI查询信息的例子.看之前请对WMI有一个简单的了解,可以百度,或者查看我上一篇:WMI测试器 主要代码:(需要添加对System.Management的引用) //创建Win32_Pr ...
- OpenWrt加入iptables 支持过滤字符串
须要在iptables命令选项中选择mod filter Network->Firewall->iptables->mod filter Kernel Modules->Net ...
- [hihoCoder] #1158 : 质数相关
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 两个数a和 b (a<b)被称为质数相关,是指a × p = b,这里p是一个质数.一个集合S被称为质数相关,是指S中 ...
- C/C++ 数据结构之算法(面试)
数据结构中的排序算法. 排序算法的相关知识: (1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来. (2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的 ...
- [javase学习笔记]-6.3 对象的内存体现
这一节我们来简单的看一看对象在内存中是什么样子呢,怎样体现. 我们以上一节的測试代码为例. 我们在函数的内存分配分析过.当该代码执行时,首先会载入主函数在栈内存中为main函数分配一个空间: 然后执行 ...
- 解决:IIS APPPOOL\DefaultAppPool 登录失败的问题
为大家介绍下解决IIS APPPOOL\DefaultAppPool 登录失败的方法,有遇到类似问题的朋友参考下. 添加ASP.NET网站时,选择添加"添加应用程序"连接sql s ...