数组方法的进制转换例子、数组的一些方法
####一、数组方法的运用例子
toString()也可以进行进制转化,参数是2-36.
example1
//用数组的方法实现进制转化 base必须是2-36,num为整数
function convertNum(num,base){
var arr = [0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z];
var str = '';
var arr = [];
while(num > 0){
arr.unshift(num % base);
num = num / base;
}
return arr.join("");
}
console.log(convertNum(28,16));//1c
二、数组的一些方法
forEach(function(item,index,array)): 遍历数组。
example2
var arr = [1,2,3,4,5];
var temp = arr.forEach(function(item,index,array){
console.log(item,index,array);
array[index] = item + 1;
});
//1 0 (5) [1, 2, 3, 4, 5]
//2 1 (5) [2, 2, 3, 4, 5]
//3 2 (5) [2, 3, 3, 4, 5]
//4 3 (5) [2, 3, 4, 4, 5]
//5 4 (5) [2, 3, 4, 5, 5]
console.log(temp);//undefined
console.log(arr);//[2,3,4,5,6]
fill(item,index): 从下标index开始,替换后面所有元素为item。
example3
var arr = [1,2,3,4,5];
var temp = arr.fill('a');
console.log(temp);//["a", "a", "a", "a", "a"]
console.log(arr);//["a", "a", "a", "a", "a"]
arr.fill("b",1);
console.log(arr);// ["a", "b", "b", "b", "b"]
filter(function(item,index,array)): 过滤所有返回true的元素,然后合成新的数组返回。
example4
var arr = [1,2,3,4,5];
var temp = arr.filter(function(item,index,array){
return item % 2 ;
});
console.log(temp);//[1,3,5]
console.log(arr);//[1,2,3,4,5]
**map(function(item,index,array)):**对数组每个元素做处理,参数函数返回值为每个元素的处理值。该方法不会改变原有数组,只是将处理过后的每个元素放到一个新的数组并返回该数组。forEach虽然也能对数组每个元素做处理,但会改变原有的数组。
example5
var arr = [1,2,3,4,5];
var temp = arr.map(function(item,index,array){
return item * 2 ;
});
console.log(temp);//[2, 4, 6, 8, 10]
console.log(arr);//[1, 2, 3, 4, 5]
reduce(function(prev,cur,curindex,array),init): 迭代处理。如果init没有值,第一次迭代的prev和cur分别是前两个元素;如果有值,则第一次迭代的prev和cur是init和数组的第一个元素。迭代的返回值会作为下次迭代的prev参数。
example6
var arr = [1,2,3,4,5];
var temp = arr.reduce(function(prev,cur,curindex,array){
console.log(prev,cur);
return prev + cur;
},0);
//0 1
//1 2
//3 3
//6 4
//10 5
console.log(temp);//15
console.log(arr);//[1,2,3,4,5]
temp = arr.reduce(function(prev,cur,curindex,array){
console.log(prev,cur);
return prev + cur;
});
//1 2
//3 3
//6 4
//10 5
console.log(temp);//15
reduce()
方法记录字符串的字符个数例子。
example7
var str = "aaabbcsddeefff";
function calcuCharNum(str){
var arr = str.split("");
var obj = arr.reduce(function(prev,cur,curindex,array){
return prev[cur] === undefined ? prev[cur] = 1 : ++prev[cur],prev;
},{});
return obj;
}
console.log(calcuCharNum(str));//{a: 3, b: 2, c: 1, s: 1, d: 2, …} 这是一个js对象