为了账号安全,请及时绑定邮箱和手机立即绑定

关于sort和forEach里面的函数

var arr =['ap','b','c','d','e'];

			arr.forEach(function(y,x,a){

				console.log(y + '1' + x + '1' + (a===arr))
			});

像这个,参数y x a为什么就是默认指的是数组的序号以及数组的值???还是不太理解这个forEach属性然后里面添加函数这种是什么意思。

var arr =[12,43,4];
			// document.write(arr.sort());
			function w(value1,value2){
				if(value1<value2){
					
					return -1;
				
				}else if(value1>value2){
					
					return 1;
				
				}else{
					
					return 0;
				}
			}
			document.write(arr.sort(w));

还有这个,我也不太理解,为什么在这个sort的参数里面加这么一个函数,就可以使得从小到大排序。。。。

哪位好心人帮忙解答一下

正在回答

1 回答

第一个问题:

forEach函数的声明是这样的:

forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;

可以看到,第一个参数是数组的值,第二个是索引,第三个是数组。如果使用时只用一个参数,只会遍历值,不会访问另外两个值。

第二个问题:

/**
  * Sorts an array.
  * @param compareFn The name of the function used to determine the order of the elements. If omitted(缺省), 
     the elements are sorted in ascending, ASCII character order.
  */
sort(compareFn?: (a: T, b: T) => number): T[];

看见sort可以接收一个比较函数,来决定元素的排序规则,如果缺省,将按ASCII character 规则排序。

是否还有疑问?

0 回复 有任何疑惑可以回复我~
#1

楼兰王子

可见,不是看见。
2016-10-18 回复 有任何疑惑可以回复我~
#2

深夏之叶 提问者

我看到array里面有很多自带的这些函数,我们都可以在里面自定义一些函数,就是根据这个数组自带的函数来实现我们需要的功能是把?就像还有map every 这些也是类似的? PS 你是怎么调用查看它的函数的
2016-10-18 回复 有任何疑惑可以回复我~
#3

楼兰王子 回复 深夏之叶 提问者

你说得对。可以在every等 这些函数中自定义我们自己的规则函数。 我用的webStorem,鼠标选择该函数比如every ,摁ctrl键皆可以查看函数什么方式。
2016-10-18 回复 有任何疑惑可以回复我~
#4

楼兰王子 回复 楼兰王子

webstorm
2016-10-18 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

关于sort和forEach里面的函数

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信