1.数组常见的排序方法
(1)sort()–按照ascll字符编码排序,返回排序后的数组,会改变原数组,当数组中均为数字时,还需额外的处理,如下;
例如:
//第一种情况
var b=['c','d','a','b']
b.sort();
console.log(b);
//运行结果:
["a", "b", "c", "d"]
----------------------------------------------------------
//第二种情况
<script type="text/javascript">
//将数组a进行排序
var a=[7,34,45,13,90,35,23];
a.sort(function(num1,num2){
return num1-num2;
})
console.log(a);//a=[7,13,23,24,34,35,45,90]
</script>
(2)reverse()-------颠倒数组中元素的顺序,改变原数组。
例如:
var a=[13,90,35,23];
a.reverse();
console.log(a);
//运行结果:
[23, 35, 90, 13]
2.数组的增、删涉及到的方法:
(1)向数组中增添元素
push(元素);向数组的尾部添加一个元素或多个元素。
例如:var a=[7,34,45,13,90,35,23]; a.push("Hello","Time"); console.log(a);// [7, 34, 45, 13, 90, 35, 23, "Hello", "Time"]
unshift(元素);向数组的头部添加一个元素或多个元素。
例如:
var a=[7,34,45,13,90,35,23];
a.unshift("Hello","Time");
console.log(a)
//["Hello", "Time", 7, 34, 45, 13, 90, 35, 23];
(2)从数组中删除元素:
pop();从数组的尾部删除一个元素。
var a=[13,90,35,23];
a.pop();
console.log(a);
//[13, 90, 35]
shift();从数组的头部删除一个元素。
例如:
(3)splice() 方法向数组中添加项目,或从数组中删除项目,并返回删除的项目。
语法:
arrayObject.splice(index,howmany,item1,…,itemX)
删除项目:
例如:
var a=[13,90,35,23];
var b=a.splice(0,2)
console.log("被删除的项目:"+b);
console.log("原数组现在的状况"+a);
//运行结果:
被删除的项目:13,90
原数组现在的状况35,23
添加项目:
当第二个参数是0时,表示从索引位置开始添加元素:
var a=[13,90,35,23];
a.splice(1,0,1,2)
console.log(a);
//运行结果为:
[13, 1, 2, 90, 35, 23]
当第二个参数为n,且n不等于0时,表示从索引位置开始先删除n个元素,然后再添加元素:
例如:
var a=[13,90,35,23];
a.splice(1,1,1,2)
console.log(a);
//运行结果:
[13, 1, 2, 35, 23]
其他:
(1)提到这里我想提另外一个关于数组的方法:
slice()-------它的相关操作不会作用到原数组上面,它会返回一个子数组:
基本语法
ArrayObject.slice(start,end); start–end这是一个左闭右开的区间
例如:
var a=[13,90,35,23];
var b=a.slice(0,2);
console.log("原数组"+a);
console.log("返回的东西"+b);
//原数组13,90,35,23
返回的东西13,90
(2) concat([被连接的数组]):连接两个数组,组成一个新数组,不改变原数组。
例如:
var a=[13,90,35,23];
var b=["Hello","one","two"];
var c=a.concat(b);
console.log("a is:"+a);
console.log("b is:"+b);
console.log("c is:"+c);
//运行结果为:
a is:13,90,35,23
b is:Hello,one,two
c is:13,90,35,23,Hello,one,two
(3)join() 方法------------用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的,不改变原数组,返回一个新的字符串,具体用法如下:
arrayObject.join(separator)
参数描述:
separator 可选。是指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
var a=[13,90,35,23];
var b=a.join("-")
console.log("原数组a:"+a);
console.log("新生成的字符串b:"+b);
//原数组a:13,90,35,23
新生成的字符串b:13-90-35-23
数组中关于位置的方法:
(1)indexOf():从数组的开头开始向后查找。
(2) lastIndexOf():从数组的末尾开始向前查找。
这两个方法都接受两个参数:要查找的项, 查找起点位置的索引(可选项)
这两个方法都返回要查找的项在数组中的位置,或者在没有找到的情况下返回-1.
实例:
let a=[1,2,3,4];
console.log(a.indexOf(1))
//结果:0
数组中的五种迭代方法:
every() | 对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true |
---|---|
some() | 对数组中的每一项运行给定的函数,该函数中只要有一项返回true,则返回true. |
filter() | 对数组中的每一项运行给定的函数,返回满足某些条件所组成的数组 |
map() | 对数组中的每一项运行给定的函数,也返回一个数组,而且这个数组是原始数组的每一项经过传入函数处理过所得到的。 |
forEach() | 对数组中的每一项运行给定的函数,该方法没有返回值,本质上与使用for循环迭代数组是一样的 |
总结 | 上述这几种方法都不会改变原始数组 |
备注:参考W3School+javascript高级程序设计第三版