1.翻转字符串
let str = 'abcdef'
str = str.split('').reverse().join()
console.log(str)
因此想到了我之前写的截取字符串获取参数跳转,在写一遍
let str = 'name=Jack&age=18&gender=男'
let list = str.split('&');
let obj = {}
list.forEach((v)=>{
let item = v.split('=')
let key = item[0]
let value = item[1]
obj[key] = value;})
2.数组翻转
常规办法
第一种
let str = ['a','b','c','d','e','f'];
let arr = []
for(let i = str.length-1; i < str.length;i--){
if(!str[i]){
break
}
arr.push(str[i])
}
第二种
let str = ['a','b','c','d','e','f'];
let arr = str.reverse()
console.log(arr)
3.获取页面url的query参数
第一种
let params = "https://baidu.com?username=admin&password=admin123"
let strIdx = params.indexOf('?')
let newStr = params.substring(strIdx+1)
let arr = newStr.split('&')
let obj = {}
arr.forEach((v)=>{
let item = v.split('=')
let key = item[0];
let value = item[1]
obj[key] = value;
})
console.log("obj",obj)
第二种
URLSearchParams:将string解析成为查询字符串
像微信小程序URLSearchParams方法不支持的,用原生的比较好,这个只是作为一个了解。而且查询的也只是?后面的内容,前面还得分割一下,没必要。
let params = "https://baidu.com?username=admin&password=admin123"
let newStr = params.substring(params.indexOf('?'))
let usp = new URLSearchParams(newStr)
let obj = {}
for(let key of usp){
obj[key[0]] = key[1]
}
console.log(obj)
4.随机打乱顺序
第一种办法是我自己写的确实不太好,重复了就让他在重新在随机一次,太过于简单粗暴了,存在很多次相同的情况
// 数组随机打乱
let params = ['a','b','c','d','e']
let newArr = []
for(let i = 0; i < params.length;i++){
const num = Math.floor(Math.random() * params.length);
const newStr = params[num];
if(newArr.includes(newStr)){
i = i - 1;
}else{
newArr.push(newStr)
}
}
console.log('newArr',newArr)
第二种办法
- 从数组的最后一个元素开始,向前遍历。
- 对于每个元素,生成一个介于0和当前索引之间的随机整数。
- 交换当前元素和随机生成索引位置的元素。
- 继续这个过程直到数组的第一个元素。
let params = ['a', 'b', 'c', 'd', 'e']
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
console.log(shuffleArray(params))