},
toString: function() {
return “Bruce”;
}//前端全栈开发交流圈:866109386
}//帮助1-3年前端人员,突破技术瓶颈,提升思维能力
var person2 = {
toLocaleString: function() {
return “Cindy”;
},
toString: function() {
return “David”;
}
}
var person = [person1, person2];
alert(person);//Alice,Bruce
alert(person.toString());//Alice,Bruce
alert(person.toLocaleString());//Cindy,David
##6、栈方法
**(1)push():**接收任意数量的参数,逐个添加到末尾,返回修改后数组的长度。
**(2)pop():**从数组末尾移除最后一项,数组的长度减一,返回移除的项。
var friends = new Array();
var len = friends.push(“Alice”,“Bruce”);
alert(len);//2
var friend = friends.pop();
alert(friend );//“Bruce”
alert(friends.length);//1
##7、队列方法
**(1)shift():**移除数组的第一项,数组的长度减一,返回移除的项。
**(2)unshift():**在数组前端添加任意数量的项,返回修改后数组的长度。
var friends = new Array();
var len = friends.unshift(“Alice”,“Bruce”);
alert(len);//2
var friend = friends.shift();
alert(friend );//“Alice”
alert(friends.length);//1
##8、重排序方法
**(1)reverse():**翻转数组项的顺序
**(2)sort():**按升序排列数组项
sort()方法会调用每项的toString()方法,然后比较得到的字符串。
var items=[0,1,3,15,18];
items.sort();
alert(items);//0,1,15,18,3
sort()方法可以接收一个比较函数作为参数:比较函数接收两个参数,若第一个参数应该位于第二个参数之前则返回一个负数;若两个参数相等则返回0;若第一个参数应该位于第二个参数之后则返回一个正数。
function compare(item1, item2) {
if (item1 < item2)
return -1;
else if (item1 > item2)
return 1;
else
return 0;//前端全栈学习交流圈:866109386
}//帮助1-3年前端人员,突破技术瓶颈,提升思维能力。
var items=[0,1,3,15,18];
items.sort(compare);
alert(items);//0,1,3,15,18
对于数值类型或其valueOf()方法会返回数值类型的对象类型,可以简写比较函数。
function compare(item1, item2) {
return item1 - item2;
}
##9、操作方法
**(1)concat():**基于当前数组中的所有项创建一个新数组。先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。若没有给concat()传递参数,则只是复制当前数组并返回副本;若传递给concat()的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组;若传递给concat()的不是数组,则这些值都简单地添加到结果数组的末尾。
var friends = [“Alice”, “Bruce”];
var newFriends = friends.concat(“Cindy”, [“David”, “Emy”]);
alert(newFriends);//Alice,Bruce,Cindy,David,Emy
**(2)slice():**基于当前数组的一或多项创建一个新数组。接收一或两个参数,即要返回项的开始和结束位置(不包括结束位置)。slice()方法不会影响原始数组。若参数中有负数,则用数组长度加上该负数来确定相应的位置。若结束位置小于开始位置,则返回空数组。
var friends = [“Alice”, “Bruce”, “Cindy”];
var friends1 = friends.slice(1);
alert(friends1);//Bruce,Cindy
var friends2 = friends.slice(1, 2);
alert(friends2);//Bruce
splice():主要用途是向数组的中部插入项,返回一个包含从原始数组中删除的项的数组,若没有删除任何项,则返回空数组。使用方式有3种:
**1)删除:**可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数。
**2)插入:**可以向指定位置插入任意数量的项,只需指定3个参数:起始位置、要删除的项数和要插入任意数量的项。
**3)替换:**可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3个参数:起始位置、要删除的项数和要插入任意数量的项。插入的项数不必和删除的项数相等。
var friends = [“Alice”, “Bruce”, “Cindy”];
var friends1 = friends.splice(0, 1);
alert(friends1);//Bruce,Cindy
var friends2 = friends.slice(1, 0, “David”, “Emy”);
alert(friends2);//Bruce,David,Emy,Cindy
var friends3 = friends.slice(1, 1, “Fancy”, “Gary”);
alert(friends3);//Bruce,Fancy,Gary,Emy,Cindy
##10、位置方法
**(1)indexOf():**接收两个参数——要查找的项和可选的查找起点位置的索引,从开头开始查找,没找到则返回-1。
**(2)lastIndexOf():**接收两个参数——要查找的项和可选的查找起点位置的索引,从末尾开始查找,没找到则返回-1。
在比较第一个参数与数组中的每一项时,会使用全等操作符,也就是要求查找的项必须严格相等。
var person = {name : “Alice”};
var people1 = [{name : “Alice”}, person];
alert(people1.indexOf(person));//1,不是0
11、迭代方法
ECMAScript数组有5个迭代方法。每个方法接收两个参数——要在每一项上运行的函数和可选的运行该函数的作用域对象(影响this的值)。传入的函数接收三个参数——数组项的值、该项在数组中的位置和数组对象本身。
**(1)every():**对数组中的每一项运行给定函数,若该函数对每一项都返回true,则返回true。
**(2)some():**对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
**(3)filter():**对数组中的每一项运行给定函数,若该函数对每一项都返回true,则返回true。
**(4)foreach():**对数组中的每一项运行给定函数,无返回值。
**(5)`map()``:**对数组中的每一项运行给定函数,若该函数对每一项都返回true,则返回true。
var nums = [1,2,3,4,1,2,3];
var every = nums.every(function(item, index, array) {
return (item > 2); // 前端全栈学习交流圈:866109386
});//帮助1-3年经验前端人员,突破技术瓶颈,提升思维能力
alert(every);//false
var some = nums.some(function(item, index, array) {
return (item > 2);
});
alert(some);//true
var filter = nums.filter(function(item, index, array) {
return (item > 2);
});
alert(filter);//[3,4,3]
var map = nums.map(function(item, index, array) {
return (item * 2);
});
alert(map);//[2,4,6,8,2,4,6]
nums.foreach(function(item, index, array) {
…
});
##12、归并方法
迭代数组的所有项,然后构建一个最终返回的值。接收两个参数——一个在每一项上调用的函数和可选的作为归并基础的值。传入的函数接收四个参数——前一个值、当前值、项的索引和数组对象。函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数是数组的第二项。
**(1)reduce():**从数组的第一项开始,逐个遍历到最后。
var items = [1,2,3,4];
总结
根据路线图上的重点去进行有针对性的学习,在学习过程中,学会写笔记,做总结。
这里分享一些前端学习笔记:
-
html5 / css3 学习笔记
-
JavaScript 学习笔记
-
Vue 学习笔记