JS的一些方法
1.Array.isArray(判断是否使数组)
var colors = new Array();
if(Array.isArray(colors)){
// 判断colors 是否是一个数组 是的话返回true
colors[0] = 'red';
colors[1] = 'yellow';
colors[2] = 'blue';
console.log(colors);
}else{
console.log("不是一个数组")
}
2.toString 转成字符串
var colors = new Array();
colors[0] = 'red';
colors[1] = 'yellow';
colors[2] = 'blue';
var a = colors.toString();
if(Array.isArray(a)){
// 判断经过转换的colors 是否是一个数组 是的话返回true
console.log("是数组");
}else{
console.log("转成了字符串")
console.log(a);
}
3.join 分割字符串
//在上面我们给colors转成字符串后发现每个元素之间是用,逗号隔开的
//其实就等同于
var colors = ['red','blue','green'];
var a = colors.join(',');
console.log(a);
//当然我们也可以用其他的符号用来分隔开
var b = colors.join('|');
console.log(b);
//那我们不分隔开的话就是
var c = colors.join('');
console.log(c);
4.栈方法 (lifo last -in - first - out)
简单来说就是后进先出 push pop
push
var colors = ['red','blue','green'];
colors.push('purple');
console.log(colors);
//往数组的最后一项添加内容
pop
var colors = ['red','blue','green'];
colors.push('purple');
console.log(colors);
colors.pop();
console.log(colors);
//pop 删除末尾最后一项
5.队列 (fifo) 先进先出
就是 shift unshift
unshift
var colors = ['red','blue','green'];
colors.unshift('orange');
console.log(colors);
colors.shift()
shift
var colors = ['red','blue','green'];
colors.unshift('orange');
console.log(colors);
var del = colors.shift();
console.log(del);
console.log(colors);
6.数组排序
- 数组倒序
reverse
var values = [0,5,2,6,1,8,20,15];
//-----数组倒叙---------
values.reverse();
console.log(values);
- 数组排序
sort
var values = [0,5,2,6,1,8,20,15];
values.sort();
console.log(values);
我们会发现他没有完全的从小到大排序,因为sort在比较的时候会给每一项转为字符再使用字符的ASC码一位一位进行比较,例如15第一位是1,和2比较所以15比2小。
- 升序(小到大)
//升序
var values = [0,5,2,6,1,8,20,15];
function compare1(a,b){
/*
if(a < b){
return -1;
}else if(a > b){
return 1;
}else{
return 0;
}
*/
return a-b;
}
values.sort(function(a, b){return a-b});
values.sort(compare1)
- 降序(大到小)
//降序
var values = [0,5,2,6,1,8,20,15];
function compare2(a,b){
/*
if(a < b){
return 1;
}else if(a > b){
return -1;
}else{
return 0;
}
*/
//简写
return b-a;
}
values.sort(compare2)
7.数组的操作方法
concat()数组合并
slice()数组分割
splice()数组添加删除替换等
- 数组合并
var colors = ['red','yellow'];
var newColors = colors.concat('blue');
//也可以添加数组对象
console.log(newColors);
- 数组分割
var colors = ['red','yellow'];
var newColors = colors.concat('blue','orange','pink');
newColors = newColors.slice(1);//从第一项开始切割
console.log(newColors);
newColors = newColors.slice(2,3); //只保留2-3 3不算 其他切割掉
console.log(newColors);
- 数组的添加删除替换
splice(start,deleteCount,items)
删除
//删除
var colors = ['red','yellow','blue','green','orange','pink'];
colors.splice(0,2) //从0索引开始删除两项
console.log(colors);
插入
var colors = ['red','yellow','blue','green','orange','pink'];
colors.splice(1,0,'purple','brown');//在索引为1的地方,删除0项,增加了两项 purple brown
console.log(colors);
替换
var colors = ['red','yellow','blue','green','orange','pink'];
colors.splice(1,2,'purple','brown');
console.log(colors);
//那替换就是添加几项就删除几项
7.数组的位置方法
indexOf() lastIndexOf()
var colors = ['red','yellow','blue','green','orange']
console.log(colors.indexOf('yellow')) //从前往后查
console.log(colors.lastIndexOf('yellow'))//从后往前查都是1
//我们还可以在后面加一个索引值来确定开始位置
console.log(colors.indexOf('yellow'),0)//但是结果还是1 因为我们查的是匹配项的索引
// 注意!! 查不到结果返回-1
8.数组的迭代方法
filter()过滤方法
var nums = [1,3,5,7,29,30,124,242];
var bigTen = nums.filter(function(item,index,array){
// item 每项 index 索引 array 数组
console.log(item);
console.log(index);
console.log(array);
return item>10
});
console.log(bigTen);
结果:
map()方法
var nums = [1,3,5,7,29,30,124,242];
var mapResult = nums.map(function(item,index,array){
return item-1;
})
console.log(mapResult)
var arr = [{
name:'张三',
age:17
},
{
name:'李四',
age:19
},
{
name:'王五',
age:20
},
{
name:'赵六',
age:21
}]
var arrName = arr.map(function(item,index){
return item.name
})
var arrAge = arr.map(function(item,index){
return item.age
})
console.log(arrName);
console.log(arrAge);
每一项都减1 结果:
forEach()数组遍历
var nums = [1,3,5,7,29,30,124,242];
nums.forEach(function(item,index,array){
console.log(item);
})
9. Date日期对象
var time = new Date();//当前的时间
console.log(time);
var before = new Date('May 1,1949 15:30:00');//我们也可以自己设定时间用Date()给他转变过去
console.log(before);
var before1 = new Date(1949,9,1);//这里月份得-1 因为从0开始
console.log(before1);
var before1 = new Date(1949,9,1,10,00,00);//定义时分秒
console.log(before1);
常用方法
getDate()获取当前月份中的第几天(1-31)getMonth()获取月份(0·11)getFullYear()获取年份gerDay()获取星期几 (0-6) 不用加1 0代表星期日getHours()获取小时 (0-23)getMinutes()获取分钟getSeconds()获取秒
var now = new Date()
console.log(now.getDate())
console.log(now.getMonth()+1)
console.log(now.getFullYear())
console.log(now.getDay())
console.log(now.getHours())
console.log(now.getMinutes())
console.log(now.getSeconds())
日期格式化方法
var now = new Date()
console.log(now.toDateString()); //星期 月 日 年
console.log(now.toTimeString()); //时分秒 时区
console.log(now.toLocaleDateString()); // 年/月/日
console.log(now.toLocaleTimeString()); 时:分:秒
console.log(now.toLocaleString()); // 年/月/日 时:分:秒
console.log(now.toUTCString()); // UTC
Math数学对象
Math.E
Math.LN10
Math.LN2
Math.LOG2E
Math.PI
Math.SQRT2
//------方法-------------
var max = Math.max(1,5,99,214,45,67); //最大值
console.log(max); // 214
var min = Math.min(1,5,99,214,45,67); //最小值
console.log(min); // 1
var arr = [1,3,5,7,2,4,6];
var max = Math.max.apply(null,arr);
var min = Math.min.apply(null,arr);
console.log(max); // 7
console.log(min);
// ceil() 向前进1 floor() 保留当前整数舍去小数
// round() 标准的四舍五入
var num = 19.1;
console.log(Math.ceil(num));
console.log(Math.floor(num));
console.log(Math.round(num));
//--------------------------------------
/// 随机数 random() 0<=random<1
console.log(Math.random());