数组方法 数组遍历
let arr = [1,2,3,4,5]
let str = arr.join('.')
console.log(str);
let str = "string-Text";
let arr = str.split('-');
console.log(arr);
let arr = ['name','true','false']
let arr1 = [1,3,5,24,6,7,9,4,6,22,13]
arr.push("dinner");
console.log(arr.push("dinr"));//在数组后面添加元素。返回值是5(数组长度)
console.log(arr.pop("dinr"));//删除所选元素,返回被删除的元素
console.log(arr.unshift("diir","button"));//在数组最前面添加数据。返回新数组长度(6)
console.log(arr.shift())//删除数组第一个元素,返回被删除的元素
arr.reverse()//数组反转
arr.sort();//数组排序
arr.sort(function(a,b){
// return a-b; 从小到大
// return b-a; 从大到小
})
let arr2 = arr.concat(arr1);
// let arr3 = arr.push(arr1)
// console.log(arr3)//输出6 arr的长度
console.log(arr.slice(2,4));//截取 index从2-4,不改变原数组
arr.splice(3,2)//删除从3开始的两个元素
arr.splice(0,3,'mamam',"keke","diudiu",'wiwei','diudiu',"dongdong","zhuzhu")//在删除位置添加新元素
console.log(arr.indexOf("diudiu"));//返回第一次出现所包含元素的index,
if(arr.indexOf("diudiu") == -1){
console.log("该元素不存在")
}else{
console.log("该元素存在");
}
// 删除或增加元素(任意在任何位置,直接改变原数组,没有返回值)
console.log(arr.lastIndexOf("diudiu"));//最后一次出现该元素的index值
arr.forEach(function(item,index,arr){
// item 为数组包含项
//index为数组下标
//arr为原数组
//无返回值
})
let arr4 = arr.map(function(item,index,arr){
return item+"e"
//有返回值,返回一个新数组,新数组长度和原数组长度相同
})
console.log(arr4);
let arr5 = arr1.filter(function(item,index){
return item % 3 === 0
//过滤器,返回符合过滤条件的选项组成一个新数组
})
console.log(arr5);
let arr6 = ['',1,false,'true',3];
let arr7 = arr6.filter(function(item,index){
return item
//过滤出布尔类型为真的选项
})
console.log(arr7);
let arr8 = [
{ name: "zs", age: 18, done: "notYet" },
{ name: "ls", age: 20, done: true },
{ name: "ww", age: 22, done: true }
];
let res5 = arr.some(function(item) {
return item.name;
});
console.log(res5);//返回值为true or false
let arr9 = arr8.every(function(item){
return item.done//返回值为true 或者 false
})
let arr10 = arr8.find(function(item){
return item.done
//返回值为符合条件的第一项{name: 'zs', age: 18, done: 'notYet'}
})
let arr11 = arr8.findIndex(function(item){
return item.done
// 返回值为符合条件的第一项的下标
})
let arr12 = arr1.reduce(function(pre,next,index){
return pre+next;
// 求和 *第一次:pre–>1 next–>2 index–>1
// pre+next=1+2=3
// *第二次:pre–>3 next–>3 index–>2
// pre+next=3+3=6
// *第三次:pre–>6 next–>4 index–>3
// pre+next=6+4=10
// *第四次:pre–>10 next–>5 index–>4
})
let arr13 = [[1,2,3],[4,5],[6,7]] ;
let arr14 = arr13.reduce(function(pre,next,index){
return pre.concat(next)
// 扁平化数组
})
let arr15 = [
{price:10,count:1},
{price:15,count:2},
{price:10,count:3}
];
let arr16 = arr15.reduce(function(pre,next,index){
return pre+next.price*next.count;
},2) //在原数组第一项添加为2,不改变原数组,则可不操作第一项
let arr17 = arr.reduce(function(allNames,name){
// allnames 初始值
// name 当前元素
if(name in allNames){
allNames[name]++;}
else{
allNames[name]=1
}
return allNames
},{})
console.log(arr17);
console.log(arr);