Array和String 对象
Array对象
new Array()
var arr = new Array(2);//创建长度为2的空数组
检测参数是否是数组
创建数组
var arr =new Array(5);
检测参数是否是数组 instanceof/Array.isArray(params)
/**
*
* @param {[]]} params
* @returns
*/
function reverse(params) {
if(params instanceof Array){//或者Array.isArray(params)
var arr = [];
for (var i = 0; i < params.length; i++) {
arr[arr.length] = params[params.length - i-1];
}
return arr;
}else{
return '这个参数不是数组格式';
}
}
var arr = [1,2,3,4,5,6];
var arr= reverse(arr);
console.log(arr);
判断arr是否是数组
console.log(Array.isArray(arr));//true
添加删除数组的方法
var arr1 = [1,2,3];
//push可以给数组末尾追加新的元素
//push()参数直接写数组元素就可以
//push完毕后返回新数组的长度
var a = arr1.push(4,'pink');//增加了2个元素
console.log(arr1);
console.log(a);//就等于arr.length
// unshift 给数组前面添加元素,返回数组长度
console.log(arr1.unshift(18));
//pop 删除数组最后一个元素,返回值 被删除的元素
console.log(arr1.pop());
//pop 删除数组第一个元素,返回值 被删除的元素
console.log(arr1.shift());
翻转数组 reverse
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
arr.reverse();
console.log(arr);
### 排序 sort();
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
arr.sort(function(a,b){
return a-b;//升序
});
arr.sort(function(a,b){
return b-a;//降序
});
console.log(arr);
数组索引 indexof() lastIndexof()
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
console.log(arr.indexOf(7));//返回9 第一个满足条件的索引号
console.log(arr.indexOf(100));//返回-1 如果没有找到元素返回-1
console.log(arr.lastIndexOf(7));//返回9 从后往前找第一个满足条件的索引号
### 案例:将数组[2,0,6,1,77,0,52,0,25,7]中的0去掉,形成一个不包含0的数组
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr1 = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
arr1.push(arr[i]);
}
}
console.log(arr1);
案例 数组去重
/**
*
* @param {String[]} arr[]
* @returns newarr
*/
var remove = (arr)=>{
var newarr = [];
for(let i =0;i<arr.length;i++){
if(newarr.indexOf(arr[i])==-1){
newarr.push(arr[i]);
}
}
return newarr;
}
var arr=['c','a','z','a','z','a','z','c'];
console.log(remove(arr));
数组转为字符串 toString() join()可增加分隔符
var arr=['c','a','z','a','z','a','z','c'];
console.log(arr.toString());//c,a,z,a,z,a,z,c
console.log(arr.join());//c,a,z,a,z,a,z,c
console.log(arr.join('-'));//c-a-z-a-z-a-z-c
console.log(arr.join(':'));//c:a:z:a:z:a:z:c
## String对象
### 基本包装类型
//1.把简单数据类型包装为复杂数据类型 String Number Boolean
var str = "aaa";
var temp = new String("aaa");
//2.把临时变量的值给 str
str = temp;
//3.销毁临时变量
temp = null;
### 字符串对象 根据字符返回位置 str.indexof('要查找的字符',[起始的位置])
var str = "hello world";
console.log(str.indexOf("e")); //返回下标1
console.log(str.indexOf("e", 3)); //返回下标-1 指定了起始位置,没有找到
案例 查找字符串'galfalsdfgildfhjsdk'中l出现的位置和次数
/**
*
* @param {Strig} str
* @param {String} str1
* @returns coutn,arr
*/
var query = (str, str1) => {
let count = 0;
let arr = [];
let index = str.indexOf(str1);
console.log(index);
while (index !== -1) {
arr.push(index);
index = str.indexOf(str1, index + 1);
count++;
}
return count, arr;
};
var str = "galfalsdfgildfhjsdk";
console.log(query(str, "l"));
charAt(index) 根据位置返回字符
var str = "asfa";
console.log(str.charAt(0)); //返回第一个字符
str.charCodeAt('a') //返回字符的 ASCII码索引值
案例 判断一个字符串'galfalsdfgildfhjsdk' 中出现最多的字符,并统计其次数
var str = "galfalsdfgildfhjsdk";
var objStr = {};
for (let i = 0; i < str.length; i++) {
var chars = str.charAt(i); //chars是字符串的每一个字符
if (objStr[chars]) {
//objStr[chars]得到属性值
objStr[chars]++;
} else {
objStr[chars] = 1;
}
}
console.log(objStr);
var max = 0;
var ch = "";
for (var key in objStr) {
if (max < objStr[key]) {
max = objStr[key];
ch = key;
}
}
console.log(ch);
字符串操作方法
1.concat(str1,str2,str3,...)用于连接字符串,拼接字符串,等同与'+'
var str1 = 'hello';
var str2 = 'world';
var str3 = str1.concat(str2);
console.log(str3);//'helloworld'
2.substr(start,length) 从start位置(下标)开始取字符串,length是个数
var str = 'helloworld';
var str4 = str.substr(5, 5);
console.log(str4);//world
3.slice(start,end) 从start位置(下标)开始取字符串,end是结束下标,前闭后开
var str = 'helloworld';
var str5 = str.slice(0, 5)//'hello'
4.substring(start,end)从start位置(下标)开始取字符串,end是结束下标,前闭后开,不接受负值
var str = 'helloworld';
var str6 = str.substring(0, 5)//hello
5.replace('被替换的字符','替换为的字符') 它只会替换第一个字符
var str = 'helloworld';
console.log(str.replace('world', 'html'));//hellohtml
案例:将字符串'fhjiasdfhjd'中的j替换为J
var string = 'fhjiasdfhjd';
while (string.indexOf('j') != -1) {
string = string.replace('j', 'g');
}
console.log(string);//'fhgiasdfhgd'
6.split('分隔符') 字符串转换为数组 join:数组转换为字符串
var str = '1,2,4';
console.log(str.split(','));
var str1= '1%2%4';
console.log(str.split('%'));
7.toUpperCase() 转换大写
var string = 'fhjiasdfhjd';
console.log(string.toUpperCase());//FHJIASDFHJD
console.log(string.toLowerCase());//fhjiasdfhjd