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的参数里面加这么一个函数,就可以使得从小到大排序。。。。
哪位好心人帮忙解答一下
第一个问题:
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 规则排序。
是否还有疑问?