匯總:
join、slice、splice症杏、concat、push瑞信、pop厉颤、unshift、
shift凡简、forEach逼友、map、filter秤涩、every帜乞、some、sort筐眷、
reverse黎烈、indexOf、lastIndexOf匀谣、reduce照棋、reduceRight、
isArray武翎、toString烈炭、toLocaleString、valueOf
join:把數(shù)組轉(zhuǎn)換成字符串宝恶,默認以逗號形式拼接符隙。
var arg = [1,2,3,4,5];
console.log(arg.join()); // 1,2,3,4,5
console.log(arg.join("|")); // 1|2|3|4|5
使用場合:一個H5頁面趴捅,需要收集用戶填寫的信息或者上傳的照片,后臺要求復(fù)選的內(nèi)容或者上傳的圖片以"|"拼接成霹疫,然后以某個字段傳值給后臺拱绑。
slice:對數(shù)組進行切割,并返回新的數(shù)組(不改變舊數(shù)組)丽蝎,可以傳參一或兩個參數(shù)猎拨,(左閉右開區(qū)間)。
var arg = [1,2,3,4];
console.log(arg.slice(0,2)) // [1,2]
console.log(arg) //[12,3,4] arg未改變
splice:對數(shù)組進行增刪改征峦,改變舊數(shù)組迟几,可以傳參多個參數(shù),參數(shù)1為起始位置(左閉右開區(qū)間)栏笆,參數(shù)2為要刪除的數(shù)量(0表示不刪除),參數(shù)3開始类腮,表示要添加的值。
splice是slice的進化版蛉加,能進行刪除蚜枢,也能進行修改,和增加
var arg = [1,2,3,4];
console.log(arg.splice(0)) //[1,2,3,4] 全部刪除
console.log(arg) // [] 空數(shù)組
arg.splice(0,0,1,2,3,4) // [1,2,3,4] 增加新內(nèi)容
arg.splice(arg.length,0,5) //[1,2,3,4,5] 在數(shù)組尾部增加新內(nèi)容
arg.splice(4,1,6) //[1,2,3,4,6] 把5修改成6
concat:在數(shù)組尾部拼接新內(nèi)容针饥,并返回新的數(shù)組(不改變舊數(shù)組)
var arg = [1,2,3];
arg.concat(4,[5,6]); // [1,2,3,4,5,6] 返回新數(shù)組
console.log(arg) // [1,2,3] 不改變舊數(shù)組
push:在數(shù)組尾部添加內(nèi)容厂抽,改變舊數(shù)組
pop:移除數(shù)組尾部的內(nèi)容,改變舊數(shù)組
unshift:在數(shù)組頭部添加內(nèi)容丁眼,改變舊數(shù)組(跟push相反)
shift:移除數(shù)組頭部的內(nèi)容筷凤,改變舊數(shù)組(跟pop相反)
forEach:循環(huán)執(zhí)行數(shù)組的每個變量
var arg1= [1,2,3,4];
var arg2 = [
{
name:"roy",
age:27
}
]
var newArg1 = arg1.forEach(function(item,index,array){
item*2
})
arg2.forEach(function(item,index,array){
item.age*2
})
console.log(arg1); //[1,2,3,4] 沒有改變,說明基本類型傳值苞七,只是復(fù)制了一個副本藐守,并沒有修改原數(shù)組;
console.log(newArg1);//undefined 說明沒有返回值蹂风;
console.log(arg2); //[{name:"roy",age:54}]卢厂,值發(fā)生改變,引用類型傳值(同一個指針地址)惠啄,二者都是共享同一個對象慎恒,所以發(fā)生了改變。
map:
var arg = [1,2,3,4];
var newArg = arg.map(function(item,index,array){
return item*2
});
console.log(arg); //arg不改變
console.log(newArg); //返回新數(shù)組
var arg2 = [
{
name:"roy",
age:21
}
];
var newArg2 = arg2.map(function(item,index,array){
return item.age*2
})
console.log(newArg2); //[{name:"roy",age:42}]
console.log(arg2); //[{name:"roy",age:42}] 也發(fā)生改變撵渡,因為arg2值為對象
var arg3= [
{
name:"roy",
age:21
}
];
var newArg3 = arg3.map(function(item,index,array){
return{
...item;
item.age*2
}
})
console.log(newArg3); //[{name:"roy",age:42}]
console.log(arg3); //[{name:"roy",age:21}] 不發(fā)生改變
filter:返回滿足條件的新數(shù)組融柬,不改變舊數(shù)組
var arg3 = [
{
name:"roben",
age:21
}
];
var arg5 = arg3.filter(function(item){
if(item.age == 21){
item.age*2
return item
}
})
console.log(arg3); //[{name:"roben",age:21}]不改變 ????這里不是引用對象嗎,為什么不改變姥闭,疑惑疑惑!!!!!!!!!!!!!1
console.log(arg5);//[{name:"roben",age:21}]
every:遍歷數(shù)組的值是否滿足某個條件丹鸿,如果都滿足,則返回true棚品,否則false(記得添加return)
some:遍歷數(shù)組的值是否滿足某個條件靠欢,如果有一個滿足,則返回true铜跑,否則false(記得添加return)
sort:排序门怪,需定義排序函數(shù),默認是字符編碼排序
reverse:顛倒數(shù)組
indexOf:返回查詢值在數(shù)組所在的位置(從左到右)锅纺,不存在返回-1
lastIndexOf:返回查詢值在數(shù)組所在的位置(從右到左)掷空,不存在返回-1
reduce:從左到右對數(shù)組進行疊加操作
reduceRight:從右到左對數(shù)組進行疊加操作
isArray:用于判斷某個值是否為數(shù)組,返回布爾值囤锉。
var arg = [];
Arrary.isArrary(arg) // 返回true
toString:轉(zhuǎn)換為字符串坦弟,alert默認調(diào)用的就是toStrig()方法
toLocaleString:轉(zhuǎn)換為字符串,當用在new Date對象時官地,根據(jù)當?shù)貢r間格式顯示
valueOf:valueOf() 方法通常由 JavaScript 在后臺自動調(diào)用酿傍,并不顯式地出現(xiàn)在代碼中。valueOf() 方法不會改變原數(shù)組驱入。