array.reverse()
var unorderedNumber = [4, 8, 9, 6, 7, 10, 52, 69, 74, 52, 33, 1, 65, 97, 5];
unorderedNumber.reverse();
array.sort()
/*
由于数组排序是将数组元素直接转换成字符串比较
将每个数组元素调用toString()进行比较
所以才会出现下面出现的排序方法
*/
var array = [0,1,5,10,15];
array.sort();
console.log(array); // 0,1,10,15,5
// sort()`方法将传入如下方法
// 正确的的升序排列传入如下方法
// 升序
function compare(value1, value2) {
if (value1 > value2) {
return 1;
} else if (value1 < value2) {
return -1;
} else {
return 0;
}
};
// 降序
function compareLow(value1, value2) {
if (value1 > value2) {
return -1
} else if (value1 < value2) {
return 1
} else {
return 0
}
}
var unorderedNumber = [4, 8, 9, 6, 7, 10, 52, 69, 74, 52, 33, 1, 65, 97, 5];
console.log(unorderedNumber.sort(compare)); // [1, 4, 5, 6, 7, 8, 9, 10, 33, 52, 52, 65, 69, 74, 97]
console.log(unorderedNumber.sort(compareLow)); // [97, 74, 69, 65, 52, 52, 33, 10, 9, 8, 7, 6, 5, 4, 1]
// 如果直接想转换数组的顺序,不介意顺序还是升序的话
// 可以直接使用reverse方法
console.log(unorderedNumber.reverse()); // [1, 4, 5, 6, 7, 8, 9, 10, 33, 52, 52, 65, 69, 74, 97]
// 在没有传递参数的情况下,将添加的元素添加到原有数组末尾
var array = ['name','sex','hobby'];
var putArray = ['lalal','23333','hellow'];
var newArray = array.concat(putArray);
console.log(newArray) // 'name','sex','hobby','lalal','23333','hellow'
var newArray1 = newArray.concat('23333','66666');
console.log(newArray1) // 'name','sex','hobby','lalal','23333','hellow','23333','66666'
// push 数组的这个方法和接下来要讲的unshift方法都是在工作中用到的最多的方法
var array = ['love','my','readers'];
array.push('thanks');
console.log(array); // ["love", "my", "readers", "thanks"]
var array = ['love','my','readers'];
array.unshift('thanks');
console.log(array) // ["thanks", "love", "my", "readers"]
// 接受一个参数的时候,返回该数组传入值在数组中索引位置的到末尾的所有元素
var array = ['res','green','blue','orange'];
var array1 = array.slice(1);
console.log(array1); // 打印出array从索引1直至结束的所有元素,包含起始位置的元素
// 接受两个参数
var array2 = array.slice(0,2);
console.log(array2); // 打印出array数组其实索引为0和结束索引为2的元素。不包含结束索引上面的元素。
// 注意: 如果传入的参数是负数的话,则会自动将将该参数加该数组的长度才是实际传入该方法的数值
// splice方法有三种,可以在指定位置插入指定元素;可以在指定位置替换元素;最后就是删除指定位置的指定数量
// 我只说说我工作中用到最多的删除数组,因为我写angular的时候。如果直接将一个scope变量赋值给一个空的数组,有时候会出现数组不更新的情况。所以我一般处理清空数组对象的方法是如下代码
var array = ['res','green','blue','orange'];
array.splice(0,array.length);
// 这个代码什么意思呢?这个方法的第一个参数是要删除数组元素的起始索引位置,第二个参数是删除的元素个数。这样子就很好理解这个写法了。
// 这个方法也是我最近才开始用,但是发现超级方便的一个方法 indexOf(),参数是传入一个数组的元素。它会自动查找,如果你传入的参数是该数组的元素则返回该元素在该数组的索引。反之如果传入的元素不是该数组的元素。则返回-1
var array = [1,2,3,4,5,6,7,8,9];
console.log(array.indexOf(2)); // 打印出2在该数组中的索引 1
console.log(array.indexOf(12)); // 因为找不到12 则打印出来-1
// every() && some() 返回Boolean值 以下是用法
var array = [1,2,3,4,5,6,7,8,9,10];
var result = array.every(function(item,index,array){
return (item > 2)
});
console.log(result); // false
var result1 = array.some(function(item,index,array){
return (item > 2)
});
console.log(result1); // true
// 这两个方法类似于且和或的关系,当然从单词意思也可以看出,some就是一些嘛,every就是每个嘛。一个是满足部分条件,一个是满足所有条件。
// filter 返回所有满足条件的新的数组
var array = [1,2,3,4,5,6,7,8,9,10];
var result = array.filter(function(item,index,array){
return (item > 3)
});
console.log(result); // [4, 5, 6, 7, 8, 9, 10];
// 批量操作数组 map()
var array = [1,2,3,4,5,6,7,8,9,10];
var result = array.map(function(item,index,array){
return (item * 3)
});
console.log(result); // [3, 6, 9, 12, 15, 18, 21, 24, 27, 30];
// 还有就是数组的归并方法 reduce()和reduceRight() 我不做讲了。。至少我现在工作暂时还没有用到呢。有兴趣的可以去了解下。
我要睡觉了,明天把构建之法看看。虽然不是工具书,但是感觉看完也会有蛮多的收获的吧。这种复习系列我会定期更新下去。今天回顾发现还是学到了不少东西。所以,一边学习一边写博客是多么明智的选择。奋斗!!!