js的对象
random对象生成随机数
可以使用random对象生成随机数
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
这个函数有两个入参【分别控制入参的最大值和最小值】
Data对象
data对象在使用之前必须先new一个构造函数出来
当前时间必须实例化
var now = new data();
console.log(now);
如果没有传参,则系统自动返回当前时间。
传入参数的常用写法
数字型
2021,1,1 (用逗号隔开)
var data = new Data(2021,1,1);
字符串型
2021-1-1 9:9:9 (通空格隔开 日期用- 时间用引号)
var data1 = new Data(2021-1-1 9:9:9);
如果需要获取具体的年月日时分秒
注意:这里的月份是从0开始的,因此需要在月份后面 +1
var month = data.getMonth()+1;
数组对象
检测是否为数组
(1)运算符instanceof
使用方法
new arr = [];
console.log(arr instanceof Array); //如果arr是数组则返回ture,否则返回false
(2)运用Array.isArray(参数)
使用方法
new arr = [];
console.log(Array.isArray(arr)); //返回值依旧是ture或者flase
数组案例
//有一个数组[1500,2300,1300,1700,2200],要去有把小于2000的放进新数组里面
var arr = [1500,2300,1300,1700,2200];
var newArr = [];
for(var i = 0;i < arr.length;i++){
if(arr[i] < 200){
newArr[newArr.length] = arr[i]; //这一种是直接赋值
newArr.push(arr[i]); //这一钟是push进去
}
数组indexOf (从前面开始查找 顺序)
返回元素中数组的索引【从0开始】
(如果数组有两个相同的元素,则只返回第一个元素的索引)
如果找不到此元素则返回 -1
var arr = ['blue','pink','black'];
arr.indexOf('blue');
数组lastIndexOf(从后面开始查找 倒序)
同样返回数组的索引
数组去重案例(重点案例)
function unique(arr){
var newArr = [];
for(i = 0;i < arr.length;i++){
if(newArr.indexOf(arr[i]) === -1){
newArr[newArr.length] = arr[i];
}
}
return newArr;
}
console.log(unique(['a','b','c','d','b','c','a']));
1、把数组里面不重复的数组拿出来放到新数组里面,重复的数组只保留一个
2、算法:拿着旧数组取查找新数组,如果元素在数组里没出现过,则添加,否则就跳过。
3、我们可以用 新数组.indexOf(就数组) 如果返回 -1 则表示没有出现过。
String 字符串对象
重点案例,返回字符串中所有的某个元素,然后返回元素的个数和位置
var str = "abcsdcafacxsfrc";
var index = str.indexOf('c');
var num = 0;
while(index !== -1){
console.log(index);
index = str.indexOf('c', index + 1);
num++
}
1、因为indexOf只返回一次元素的索引,因此当索引 +1 时候,则开始返回下一个索引。
根据位置返回字符
charAt(index)
//返回字符串的某个索引的元素,传入索引返回元素
var str='liao';
console.log(str.charAt(3));
遍历数组
var str='liao';
// console.log(str.charAt(3));
//遍历字符串的所有字符
for(i = 0; i < str.length;i++){
console.log(str.charAt(i));
}
数组字符串最多的元素的个数
核心算法:利用charAt() 遍历字符串的每个元素
把每个字符串都传给对象,如果对象没有属性,就为1,如果存在就 +1
遍历数组得到最大值和这个字符
var str = 'acasnkclfkacsssd';
var obj = {}; //把字符串的元素传入obj,作为obj对象的一个属性
for(var i = 0;i < str.length;i++){
var chars = str.charAt(i);
if(obj[chars]){ //对象[属性] 判断是否有obj对象的某个属性
obj[chars]++; //存在的话就属性值 +1
}else{
obj[chars] = 1; //没有的话就,给属性赋值 1
}
}
console.log(obj.length);
var ch = '';
var max = 0;
for(var k in o){
if(obj[k] > max){
max = obj[k];
ch = k;
}
}
字符串操作方法【重点】
concat()
var str = 'jack';
console.log(str.concat('cat'));
这种方法连接字符串我们比较少用,一般都是 + 连接。
substr(‘截取开始位置的索引号’ , '截取字符的个数‘)
var str = '中国人民真争气';
console.log(str.substr(2,2)); //输出的是 【人民】 ,第一个2是字符串的字符索引号,从0开始, 第二个二是截取几个字符
pt
var str = ‘jack’;
console.log(str.concat(‘cat’));
这种方法连接字符串我们比较少用,一般都是 + 连接。
##### substr(‘截取开始位置的索引号’ , '截取字符的个数‘)
```javascript
var str = '中国人民真争气';
console.log(str.substr(2,2)); //输出的是 【人民】 ,第一个2是字符串的字符索引号,从0开始, 第二个二是截取几个字符