数组的操作

①join()

join()方法:用于把数组中的所有元素,通过指定的分隔符放入一个字符串

下面我们来看个实例

var arr = [1,2,3,4,5,6,8]

var str = ''
str = arr.join('|');
console.log(str);
str = arr.join();//不传参 直接返回一个字符串(不传参是一种快捷的把数组转换成字符串的方式)
console.log(str);
console.log(typeof str);    

输出:

1|2|3|4|5|6|8
1,2,3,4,5,6,8
string

②pop()

pop()方法:用于删除数组中的最后一个元素并返回该元素,无需参数。

说明:pop()方法将删除数组的最后一个元素,把数组长度减一,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,并返回undefined值。

下面我们来看一些实例

实例1、

var arr = [1,2,3,4,5,6,8,'abc'];
console.log(arr.pop('abc'),arr);//删除的是abc这个字符串

输出:

abc [1,2,3,4,5,6,8]

实例2、

var arr = [];
console.log(arr.pop());

输出:

undefined

实例3、

var arr = [1];
console.log(arr.pop());//弹出1,arr为空数组

输出:

1

③shift()

shift()方法:(与pop()相反)移除数组中的第一个元素,并返回第一个元素的值。

语法:

arrayObject.shift()

说明:如果数组是空的,那么shift()将不进行任何操作,返回undefined。注意,该方法不创建新数组,而是直接修改原有的arrayObject.该方法会改变数组的长度

下面我们来看一个实例

var arr = [1,2,3,4,5,6,8,'abc'];
console.log(arr.shift(),arr);

输出:

1 [2,3,4,5,6,8,"abc"]

④push()

push()方法:可向数组的末尾添加一个或更多元素,并返回新的长度。

语法:arrayObject.push(*newelement1,newelement2,….,newelementX)
参数newelement1是必需的,要添加到数组的第一个元素;

参数newelement2是可选的,要添加到数组的第二个元素;

参数newelement1是可选的,可添加多个元素。

返回值:把指定的值添加到数组后的新长度。

说明:push()方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。注意,该方法会改变数组的长度。

下面我们来看一个实例

var arr = [1,2,3,4,5,6,8];
console.log(arr.push('a','b','c','d'),arr);

输出:

11 [1,2,3,4,5,6,8,1,2,3,4]

⑤sort()

sort()方法:用于对数组的元素进行排序

语法:

arrayObject.sort(sortby)

参数sortby,可选。规定排序顺序,必须是函数。

返回值:对数组的引用。注意,数组在原数组上进行排序,不生成副本。

说明:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数(这个函数可以写在外面),该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

*若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
*若 a 大于 b,则返回一个大于 0 的值。
*若 a 等于 b,则返回 0

下面我们来看一个模板:

var arr = [10,20,1,4,5,8,100];
console.log(arr.sort(fn));
function fn(a,b){//这里的a,b参数必须要写的,表示数组里的任意两个数值
return a-b;//大于0(b在a的前面),小于0(a在b的前面),等于0的(有兼容问题)。
return b-a;//大于0(a在b的前面),小于0(b在a的前面),等于0的(有兼容问题)。
}
// a-b 输出从小到大排序,b-a 输出从大到小排序

⑥reverse()

reverse()方法:用于颠倒数组中元素的顺序(逆序排序)。

语法:

arrayObject.reverse()

注意:该方法会改变原来的数组,而不会创建新的数组。

下面我们来看一个实例

var arr = ['a','b','c','f','h'];
console.log(arr.reverse());

输出:

["h","f","c","b","a"]

⑦slice()

slice()方法:该方法可从指定的数组中返回选定的元素。可用于数组和字符串的操作。

语法:

arrayObject.slice(start,end)

参数start,必需参数,规定何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

参数end,可选参数,规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

注意:该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

*您可使用负值从数组的尾部选取元素。

*如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

下面我们来看两个实例

实例1、

var arr = [0,1,2,3,4,5,6,7,8];
console.log(arr.slice(2,6));

输出:

[2,3,4,5]

实例2、

var arr = [0,1,2,3,4,5,6,7,8];
console.log(arr.slice(-1));

输出:

[8]

⑧splice()

splice()方法:向/从数组中添加/删除项目,然后返回被删除的项目。(该方法会改变原始数组)

语法:

arrayObject.splice(index,howmany,item1,.....,itemX)

参数index,是必需的。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

参数howmany,是必需的。要删除的项目数量。如果设置为 0,则不会删除项目。

参数item1, …, itemX,可选参数,非必须,向数组添加的新项目。

返回值:Array,包含被删除项目的新数组,如果有的话。

注意:splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

*请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

下面我们来看几个实例

实例1、

var arr = [0,1,2,3,4,5,6,7,8];
var arr2;
arr2 = arr.splice(2);
console.log(arr2,arr);

输出:

[2,3,4,5,6,7,8][0,1]

实例2、

var arr = [0,1,2,3,4,5,6,7,8];
var arr2;
arr2 = arr.splice(2,4);
console.log(arr2,arr);

输出:

[2,3,4,5][0,1,6,7,8]

实例3、

var arr = [0,1,2,3,4,5,6,7,8];
var arr2;
arr2 = arr.splice(2,4,'abc','bds');
console.log(arr2,arr);

输出:

[2,3,4,5][0,1,'abc','bds',6,7,8]

⑨forEach()

forEach()方法:遍历数组

具体知识点,博主还木有搞清楚呢,待我搞明白了再来更新~

题外题:

var obj = {}
var num;//undefined
for (var i = 0; i < 10; i++) {
    //console.log(i);
    if (obj.hehe) {
        obj.hehe ++;
    }else{
        obj.hehe = 1;
    }
}
console.log(obj.hehe);

输出:

10