Javascript(二)
字符串
属性和方法
获取长度:S.length;
获取字符串对应位置的字符值:S[index]; / S.charAt(index);
全部大写:S.toUpperCase();
全部小写:S.toLowerCase();
搜索字符字串出现的位置:S.indexOf("s");
返回指定区间的子串:
S.subString(start, end); 从索引为start(数字)开始到end(以大数作为end)
S.substr(start, length); 从索引为start(数字)开始length个字符
eg:
S = "Hello Xherlock!";
console.log(S.substring(2, 5));
console.log(S.substr(2, 5));
// 输出结果
// llo
// llo X
slice和subString很相似,只是在传入参数为负数时有所区分
substring传入负数自动变为0,而slice截取总长度+该负数
拼接字符串:S.concat(S1);
字符串分割:S.split("") // 每个字符分割
S = "Hello Xherlock!";
console.log(S.split(""));
// 输出
/* [
'H', 'e', 'l', 'l',
'o', ' ', 'X', 'h',
'e', 'r', 'l', 'o',
'c', 'k', '!'
]
*/
替换字符串:S.replace(old, new);
数组
创建
var arr=[1,"hello","Xherlock"];
arr = new Array(1,"hello","Xherlock");
属性和方法
arr.length; 获取数组长度
arr[index];
arr.indexOf(~); arr.lastIndexOf();
arr.slice(start, end); 返回索引为start到end(不包含end)的数组元素
arr.push() 接收变量并逐个加入数组末尾
arr.pop() 移除数组最后一个元素,长度减一
arr.unshift() 将参数传入数组开头,并返回数组长度
arr.shift() 删除数组第一项元素,并返回第一个元素值
arr.sort() 排序,自动将所有元素转为字符串,从头进行比较排序
arr.splice(start, end, ele1, ……elen);
删除:传入2个参数,第一个时删除位置,第二个为删除项数
插入:传入任意项参数,第一个为起始位置,其余为插入的项
替换:传入任意项参数,第一个为起始位置,第二个为要替换的项数,其余为被替换成的内容
arr.concat(); 组合,传入参数作为元素添加到数组中
arr.join("连接符"); 将数组元素用连接符连接成字符串
arr.reverse(); 反转数组元素顺序
arr.foreach(函数); 遍历循环数组,函数参数有遍历的数组内容、对应数组索引、数组本身
eg:
var arr = [1113, "Xherlock", "hello", 2021, "hello"];
arr.forEach(function(x, index){
console.log(index+" "+x);
});
/*
0 1113
1 xherlock
2 hello
3 2021
4 hello
*/
arr.map(函数); 映射,对数组中每一项运行给定的函数,返回结果数组
eg:全部大写
var arr = [1113, "Xherlock", "hello", 2021, "hello"];
var arr1 = arr.map(function(value){
return value.toString().toUpperCase();
});
console.log(arr1);
// [ '1113', 'XHERLOCK', 'HELLO', '2021', 'HELLO' ]
arr.filter(函数); 过滤功能
eg:除去数字
var arr = [1113, "Xherlock", "hello", 2021, "hello"];
var arr2 = arr.filter(function(value){
if(isNaN(value)) // isNaN不是数字则返回true
return value;
});
console.log(arr2);
// [ 'Xherlock', 'hello', 'hello' ]
arr.every(函数); 判断数组中每一项均满足条件才返回ture
eg:判断是否均为字符串
var arr = [1113, "Xherlock", "hello", 2021, "hello"];
var arr2 = [ 'Xherlock', 'hello', 'hello' ];
function isSting(value){
return isNaN(value);
} // 判断是否均为字符串
var arr3 = arr2.every(isSting);
console.log(arr3);
var arr4 = arr.every(isSting);
console.log(arr4);
arr.some(函数); 判断数组中是否存在满足条件的项,只要有一项满足就会返回true
eg:同上
var arr = [1113, "Xherlock", "hello", 2021, "hello"];
function isSomeString(value){
return isNaN(value);
}
var arr5 = arr.some(isSomeString);
console.log(arr5);
var arr6 = [1, 2, 3];
console.log(arr6.some(isSomeString));
arr.reduce(函数); 首先从数组中取出前两个元素,按照reduce中的函数进行计算,所得结果和下一个继续按照该函数计算,直到最后一个设置的元素,返回最终结果
arr.reduceRight(函数); 和reduce顺序相反
eg:求乘积
var arr7 = [2, 45, 4];
result = arr7.reduce(function(pre, cur){
return pre*cur;
})
console.log(result);
对象
对象名.属性名; / 对象名[属性名];
判断是否存在某一属性:"属性" in 对象; / 对象.hasOwnProperty("属性");