数组的应用

1.数组与字符串的互转
(1)使用 Array 对象的 join()方法把数组转换为多种形式的字符串。join()方法包含一个参数,用来定义合并元素的连字符,如果join()方法不提供参数,则默认以逗号连接每一个元素。
代码:
var a = [1,2,3,4,5];
a = a.join("+");
document.write("a类型 = " + typeof(a) + “
”); 类型是 string
document.write("a的值 = " + a); a的值是 1+2+3+4+5

(2)使用split() 方法可以把字符串解开为一个数组,该方法有两个参数,第一个参数是解开的分隔符,第二个参数是返回数组的长度。
代码:
var a = [1,2,3,4,5];
a = a.join("+");
var s = a.split("+");
document.write("s类型 = " + typeof(s) + “
”); 改变后的类型为object
document.write("s的值 = " + s); 值是 1,2,3,4,5

2.数组排顺
使用 reverse() 方法可以颠倒数组元素的顺序。
代码:
var a = [1,2,3,4,5];
var a = a.reverse();
document.write(a); 输出: 5,4,3,2,1

3. 连接数组
concat() 方法能够把该方法中的参数追加到指定的数组中,形成一个新的连接数组。
代码:
var a = [1,2,3,4,5];
var b = a.concat(4,5);
document.write(b); 输出1,2,3,4,5,4,5

如果concat() 方法中的参数包含数组,则把数组元素展开添加到数组中。
代码 :
var a = [1,2,3,4,5];
var b = a.concat([4,5],1,[2,3]);
document.write(b); 输出 1,2,3,4,5,4,5,1,2,3

4.截取子数组
slice() 方法将返回数组中指定的片段,片段就是数组中的一个子数组。该方法包含两个参数,它们指定要返回子数组在原数组中的起止点。其中第1个参数指定的元素是被截取的范围之内,而第2个参数指定的元素不被截取。
代码:
var a = [1,2,3,4,5,6,7,8,9];
var b = a.slice(2,5);
document.write(b); 输出 3,4,5

5. reduce()和 reduceRight()
这两个方法都会实现迭代数组的所有项,然后构建一个最终返回的值。reduce()方法从数组的第一项开始,逐个遍历到最后。而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。
这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。
传给 reduce()和 reduceRight()的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项。
下面代码用reduce()实现数组求和,数组一开始加了一个初始值10。
代码:
var values = [1,2,3,4,5];
var sum = values.reduceRight(function(prev, cur, index, array){
return prev + cur;
},10);
console.log(sum); //25

6.some()
some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
代码:
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some(function(x) {
return x < 3;
});
console.log(arr2); //true
var arr3 = arr.some(function(x) {
return x < 1;
});
console.log(arr3); // false

7.every()
every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
代码:
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
});
console.log(arr2); //true
var arr3 = arr.every(function(x) {
return x < 3;
});
console.log(arr3); // false

8.map()
map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
下面代码利用map方法实现数组中每个数求平方。
代码:
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]

9.forEach()
forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
代码:
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + ‘|’ + index + ‘|’ + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值