持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情
判断是否包含字符串某字符串
/**
* 判断是否包含字符串某字符串
* @param {[type]} str [被检测的字符串]
* @param {[type]} substr [检测是否含有的字符串]
* @return {Boolean} [ture,false]
*/
function isContains(str,substr) {
return new RegExp(substr).test(str);
}
字符串截取
截取 /#/ 与 ? 之间的字符串。
let str = 'http://localhost:8080/#/upload?_k=knh48v'
str = str.match(/\/#\/(\S*)\?/)[1]
console.log(str) // upload
写成函数
sliceStr(str,regx) {
return str.march(`/${regx}/`)[1]
}
let str = 'http://localhost:8080/#/upload?_k=knh48v'
let regx = '\/#\/(\S*)\?'
console.log(sliceStr(str,regx)) // upload
数组去重
unique(arr) {
return [...new Set(arr)];
}
比较两个数组是否相等
在js中是不能直接用“==”或者“===”来计算两个数组是否相等的,那么就需要对数组的值进行比较,要转换为string进行比较
let arr1 = [1,2,3]
let arr2 = [3,2,1]
arr1.toString() === arr2.toString() // false
JSON.stringify(arr1) == JSON.stringify(arr2) // false
总结:
- 如果两个数组元素类型相同,顺序相同时,用stringify转化为字符串后进行比较;
- 如果两个数组元素类型相同,顺序不相同时,排序后,用stringify转化为字符串再进行比较;
- 两个数组元素类型不同时,用stringify转化为字符串后进行比较,数组不相等;用toString()转化为字符串后进行比较,数组相等;
数组元素交换位置
index1和index2分别是两个数组的索引值,即是两个要交换元素位置的索引值,如1,5就是数组中下标为1和5的两个元素交换位置。
/**
* 数组元素交换位置
* @param {array} arr 数组
* @param {number} index1 添加项目的位置
* @param {number} index2 删除项目的位置
*/
function swapArray(arr, index1, index2) {
arr[index1] = arr.splice(index2, 1, arr[index1])[0];
return arr;
}
数组元素向后移动
根据上面数组元素的交换位置函数,我们可以进行一下拓展,比如将当前数组index索引与后面一个元素互换位置,向数组后面移动一位。
function zIndexUp(arr,index,length){
if(index+1 != length){
swapArray(arr, index, index+1);
}else{
alert('已经处于置顶,无法上移');
}
}
数组元素向前移动
还可以,将当前数组index索引与前面一个元素互换位置,向数组前面移动一位
function zIndexDown(arr,index,length){
if(index!= 0){
swapArray(arr, index, index-1);
}else{
alert('已经处于置底,无法下移');
}
}
当前元素置顶
即将当前元素移到数组的第一位
function zIndexTop(arr,index,length){
if(index+1 != length){
//首先判断当前元素需要上移几个位置,置顶移动到数组的第一位
var moveNum = length - 1 - index;
//循环出需要一个一个上移的次数
for (var i = 0; i<moveNum; i++) {
swapArray(arr, index, index + 1);
index++;
}
}else{
alert('已经处于置顶');
}
}
当前元素置底
即将当前元素移到数组的最后一位
function zIndexBottom(arr,index,length){
if(index!=0){
//首先判断当前元素需要上移几个位置,置底移动到数组的第一位
var moveNum = index - 0;
//循环出需要一个一个上移的次数
for (var i = 0; i<moveNum; i++) {
swapArray(arr, index, index - 1);
index--;
}
}else{
alert('已经处于置底');
}
}