JS数组API运用相关代码总结
自己总结代码题
1.使得 students 按分数的高低从大到小排列
1 | var students = ['小明','小红','小花'] var scores = { 小明: 59, 小红: 99, 小花: 80 } students.sort(???) |
请填写 ??? 使得 students 按分数的高低从大到小排列
1 | function ( x , y ) { |
1
2var a = [1,2,3,4,5,6,7,8,9]
a.filter(???).map(???) // [4,16,36,64]
- 获取所有偶数
- 得到所有偶数的平方
1 | a.filter( function ( value , key ) { |
- 计算所有奇数的和
1
2var a = [1,2,3,4,5,6,7,8,9]
a.reduce(???,???)数组求和,一般我们的想法都是去遍历数组各项,然后累加。1
2
3
4
5a.reduce(function(sum,b){
if( b % 2 !=0){
sum = sum + b
}return sum
},0)
那就是这样:1
2
3
4
5
6
7
8function sumArr(arr){
var sum = 0;
for(var i = 0;i<=arr.length;i++){
sum += arr[i];//前提是arr中各项是数字,而不是数字字符串
//如果是数字字符串:sum += Number(arr[i]);
}
return sum;
}
又或者是forEach遍历:
1 | function sumArr(arr){ |
还有一种比较黑科技的写法:
1 | function sumArr(arr){ |
当然还有这种被人广泛称赞的函数式编程的写法:
1 | function sumArr(arr){ |
concat
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
1 | arrayObject.concat(arrayX,arrayX,......,arrayX) |
返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
forEach
forEachfindIndex()方法返回满足回调条件的数组中第一个元素的索引。否则将返回1。
1 | arr.forEach(function callback(currentValue, index, array) { |
callback:回调函数。
currentValue:在数组中处理当前元素
index:在数组中处理当前元素的索引。
array:当前数组
1 | var a = ['a', 'b', 'c']; |
join
join()将数组中的所有元素(或类似数组的对象)连接到一个字符串中
1 | arr.join() |
separator:分隔符
1 | var a = ['Wind', 'Rain', 'Fire']; |
keys
keys()方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的键
1 | arr.keys() |
map
map()方法创建一个新的数组,该数组的结果是调用调用数组中的每个元素的函数
1 | var new_array = arr.map(function callback(currentValue, index, array) { |
reduce
reduce()方法对累加器和数组中的每个元素(从左到右)使用一个函数,以将其还原为一个值
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 808Mak1r!
评论