数组join() push() pop() sort() reverse()

131 阅读2分钟
栈方法(后进先出)

join()

join() 数组转换为字符串 join可以使用不同的分隔符来构建字符串.join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串: 

 var colors = ['green','red','bule'] 
 console.log(colors.join(",")); // green,red,bule 
 console.log(colors.join("||"); // green||red||bule 

如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符 如果数组中的某一项值是null或者undefined,那么该值在join(),toLocaleString(),String()和valueOf()方法返回的结果中以空字符串表示.

push() pop()

push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度.

而pop()方法则从数组末尾移除最后一项,减少数组的length值,然后返回移除的项.

var colors = [];
var count = colors.push('red','green');
console.log(count);  // 2
count = color.push('black')
console.log(count); // 3
var item = colors.pop()
console.log(item); // 'black'
console.log(item.length); // 2

队列方法(先进先出)

shift()

移除数组中的第一项并返回该项,同时将数组长度减1. 

var colors = [];
var count = colors.push('red','green');
console.log(count);  // 2
count = colors.push('black')
console.log(count); // 3
var item = colors.shift()
console.log(item); // 'red'
console.log(item.length); // 2

unshift()与shift()用途相反 在数组前端添加任意个项并返回欣数组长度.

var colors = [];
var count = colors.unshift('red','green'); // 推入两项
console.log(count);  // 2
count = colors.unshift('black')console.log(count); // 3
var item = colors.pop()
console.log(item); // 'green'
console.log(colors.length); // 2

sort()重排序方法

默认情况下,sort()方法按升序排列数组项--即最小值位于最前面,最大的值排在最后面.

为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序.即使数组中的每一项都是数值,sort()的也是字符串

var arr = [0,1,5,10,15]
arr.sort();
console.log(arr) //[0, 1, 10, 15, 5]

数值5小于10,但进行字符串比较 '10'则位于'5'的前面,这种排序方式在很多情况下都不是最佳方案.因此sort()方法可以接收一个比较函数作为参数,以便指定哪个值位于哪个值的前面

升序
var arr = [0,1,5,10,15]function compare(val1,val2) {  return val1 - val2;}arr.sort(compare);
console.log(arr) //[[0, 1, 5, 10, 15]]降序
var arr = [0,1,5,10,15]
function compare(val1,val2) {  
  return val2 - val1;
}
arr.sort(compare);
console.log(arr) //[15, 10, 5, 1, 0]

reverse() 反转数组项的顺序

var arr = [1,2,3,4,5]
arr.reverse();
console.log(arr) //[5,4,3,2,1]