【JS】常用js方法
1、判断是否是数组、字符串等方法
a instanceof b
a是你需要判断的数据
b是判断的类型
//直接判断原型
var a = [1,5,8]
var b = '123456'
console.log(a instanceof Array)//true
console.log(a instanceof String)//false
console.log(b instanceof String)//true
2、分割字符串
a.split(str,num)
a就是需要分割的字符串
str是分隔符,默认是空
num分割的次数
var a ='api/Getuser'
var b = a.split("/");
console.log(b)//['api','Getuser']
3、替换指定字符串
a.replace(old,new)
a就是所替换的字符串所在
old是需要替换的字符串(旧字符串)
new替换成的字符串(新字符串)
var a ='{{url}}/api/GetList'
var b = a.split('/')//先分割字符串
console.log(b) //['{{url}}','api','GetList']
//第一种方法--变量
var c = a.replace(b[0],'http://198.4.100:8090');
//第二种--字符串
var c = a.replace(/{{url}}/,'http://198.4.100:8090');
console.log(c) //'http://198.4.100:8090/api/GetList'
4、数组排序
在表格中进行多选,多选后的数据顺序是根据自己选择的顺序进行排序的。我的需求是把多选后的数据根据id从小到大进行重新排序。
get () {
this.numbers = [
{ id: 1, zu: '王小虎1', state: 1, },
{ id: 4, zu: '王小虎2', state: 1 },
{ id: 3, zu: '王小虎3', state: 1 },
{ id: 2, zu: '王小虎4', state: 1 },
]
var compare = function (prop) {
return function (obj1, obj2) {
var val1 = obj1[prop];
var val2 = obj2[prop];
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1);
val2 = Number(val2);
}
if (val1 < val2) {
return -1;
} else if (val1 > val2) {
return 1;
} else {
return 0;
}
}
}
this.numbers.sort(compare('id'))
console.log(this.numbers.sort(compare('id')));
}
根据name进行排序(字符串),则是按照abc顺序排序
get () {
var arr = [{ name: "zlw", age: 24 }, { name: "wlz", age: 25 }];
var compare = function (obj1, obj2) {
var val1 = obj1.name;
var val2 = obj2.name;
if (val1 < val2) {
return -1;
} else if (val1 > val2) {
return 1;
} else {
return 0;
}
}
console.log(arr.sort(compare));
}
5、中文文字均等换行,也就是上下文字尽量一致
文字均等换行的意思就是,如果有10个字就上下显示5个字展示,8个字就上下4个字展示,尽量让两行文字显示相同
我使用的是先获取字符串的长度,然后除以2,看是否除得尽,除得尽就在哪换行,除不尽则加1然后换行
huanhang(_str) {
var str = _str,
result = "";
// 判断字符串长度多少后除以2,除后有小数点就加1换行,没有则直接换行
var rep = /[\.]/;
if (str.length > 5) {//低于5个字就不换行
let a = (str.length / 2)
if (rep.test(a)) {
var n = parseInt(str.length / 2) + 1; //指定第n位换行
} else {
var n = parseInt(str.length / 2); //指定第n位换行
}
for (var i = 0, len = str.length; i < len; i++) {
result += str[i];
if ((i + 1) % n == 0)
result += "\r\n";
}
return result;
} else {
return str
}
},
使用:
<text>{{huanhang(SceneData.Title1)}}</text>