一、字符串
字符串常用方法:https://www.cnblogs.com/l1pe1/p/6197371.html
截取字符串(slice)
str.slice(0, 10)
http://www.cnblogs.com/lmsblogs/p/5876384.html
- 删除字符串最后一位(slice)
str.slice(0,str.length-1)
https://www.jb51.net/article/126580.htm
数组和字符串的转换(join & split)
一、数组转字符串
let arr = [a,b,c,d,e]
b = arr.join(''); // abcde
let arr = [a,b,c,d,e]
b = arr.join(','); // a,b,c,d,e ——数组转字符串,用’,‘隔开
二、字符串转数组
let arr = abcde
c = arr.split(''); // [a,b,c,d,e]
https://www.cnblogs.com/LeoBoy/p/5899734.html
https://www.cnblogs.com/guorange/p/7127839.html
获取字符串最后一位方法(charAt)
str.charAt(str.length – 1)
https://www.cnblogs.com/LChenglong/p/6856530.html
返回某个指定的字符串值在字符串中首次出现的位置(indexOf)
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />") // 0
document.write(str.indexOf("World") + "<br />") // -1 不存在
document.write(str.indexOf("world")) // 6
http://www.w3school.com.cn/jsref/jsref_indexOf.asp
截取从 start 下标开始的指定数目的字符(substr)
var str="Hello world!"George.John.Thomas
document.write(str.substr(3)) // lo world!
var str="Hello world!"
document.write(str.substr(3,7)) // lo worl
http://www.w3school.com.cn/jsref/jsref_substr.asp
为数值补定指定位数(padStart)
var month = 8
month = month.padStart(2, '0') // 08
https://blog.csdn.net/qq_37548296/article/details/107259899
判断字符串为全数字
if (!/^[0-9]+$/.test(item.vacationDate)) {
this.$message.warning('调休天数必须是数字')
return
}
https://zhidao.baidu.com/question/1050724412676679539.html
判断字符串是否包含某个字段
- 方法1:将字符串转化为数组 判断是否包含
let str = '北京,上海'
let arr = str.split(',')
console.log(arr)
arr.forEach((item, index) => {
console.log(item)
if (item == '北京' || item == '全国') {
console.log(111)
// this.flag = true
}
}, this)
- 方法2:indexOf 直接判断
let str = '北京,上海'
console.log(str.indexOf('北京'))
if (str.indexOf('北京') != -1 || str.indexOf('全国') != -1) {
console.log(11)
} else {
console.log(22)
}
二、数组
往数组开头/结尾添加数据(unshift、push)
var arr = [ 1,2,3 ];
alert( arr.unshift( 'abc' ) ); // 4 返回的是长度
alert( arr.push( 'abc' ) ); // 4 返回的是长度
arr.unshift( 'abc' )
arr.push( 'abc' )
alert(arr) // ['abc',1,2,3,'abc'] // 返回数组
https://www.cnblogs.com/SongHuiJuan/p/6627490.html
数组倒序(reverse)
let arr = [1,2,3]
let arr2 = arr.reverse()
console.log(arr2) // [3,2,1]
https://www.cnblogs.com/tunshiyublogs/p/9363890.html
求数组最大值 (Math.max)
let max = Math.max.apply(null, arr)
合并两个数组(concat)
let a = [1,2,3];
let b = [4,5,6];
let c = [7];
let d = a.concat(b, c); // [1,2,3,4,5,6,7];
https://www.cnblogs.com/koala0521/p/7278056.html
判断一个数组是否包含一个指定的值 (indexOf)
let arr = ['something', 'anything', 'nothing', 'anything'];
let index = arr.indexOf('nothing');
console.log(index) //结果是2
https://www.cnblogs.com/hepengqiang/p/9822118.html
数组删除(splice)
一、删除数组里的某个元素
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
二、数组删除指定下标
//删除起始下标为1,长度为2的一个值(len设置2)
var arr2 = ['a','b','c','d']
arr2.splice(1,2);
console.log(arr2);
//['a','d']
三、delete方法删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变
var arr = ['a','b','c','d'];
delete arr[1];
arr;
//["a", undefined × 1, "c", "d"] 中间出现两个逗号,数组长度不变,有一项为undefined
JS删除数组里的某个元素方法
http://caibaojian.com/js-splice-element.html
https://www.jb51.net/article/134312.htm
JS删除数组中指定的对象
https://blog.csdn.net/frankenstein_/article/details/82788490
js增加移除替换数组里的某个元素
https://blog.csdn.net/hedy17/article/details/79378774
数组截取 -- slice和splice的区别
一、
slice(start,end) 第二个值是结束位置(包含开始索引,不包含结束索引,索引从0开始,如果第二个值为空,则截取到数组最后)
splice(start,length) 第二个值是长度
二、
slice 原数组不变
splice 原数组中的数值被剔除掉了
let y = [0,1,2,3,4,5,6,7,8,9]
console.log(y.splice(2,5)); //2,3,4,5,6
console.log(y); // [0,1,7,8,9]显示原数组中的数值被剔除掉了
https://cncat.cn/post-285.html
es6,数组去重
this.newarr = Array.from(new Set(this.arr))
判断一个值是不是数组
let arr = []
let obj = {}
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); //false
https://www.cnblogs.com/Walker-lyl/p/5597547.html
原生js,将数组每n个存为一个数组
// JS 如何从一个length为12的数组中按顺序取每5个元素为一组放到新数中,
// 最后不够5个的也存为一个数组
var SplitArray = function(N,Q)
{
var R = [],F;
for (F = 0;F < Q.length;) R.push(Q.slice(F,F += N))
return R
}
var arr = [1,2,3,4,5,6,7,8,9,10,11,12];
console.log(SplitArray(5,arr))
https://zhidao.baidu.com/question/813779575873380212.html
清空数组的三种方法
var ary = [1,2,3,4];
ary.splice(0,ary.length); // splice
ary.length = 0; // length赋值为0
ary = []; // 赋值为一个空数组;更快,效率更高
https://blog.csdn.net/p358278505/article/details/70193930
判断两个数组是否相等
当两个数组元素排序不相同时,先排序,再比较。如果是对象数组,可以结合 JSON.stringify 来使用。
var isNotChange =
clinic_ids.length === ids.length &&
clinic_ids.sort().toString() === ids.sort().toString();
https://www.jb51.net/article/247032.htm
从数组中随机取值
var items = ['1','2','4','5','6','7','8','9','10'];
var item = items[Math.floor(Math.random()*items.length)];
- 如果想取多个,可以直接循环添加到数组里,也可以直接赋值,如下:
let colorList = ['#C05155', '#5E76D7', '#F7BB60', '#89B77E']
info_data.forEach((item, index) => {
item.color = colorList[Math.floor(Math.random()*colorList.length)]
}, this)
为span随机设置背景颜色
<li v-for="(datas , indexs) in info_data" :key="datas.id">
<span :style="{background:datas.color}">{{datas.user_name}}</span>
</li>
https://blog.csdn.net/web_leeleon/article/details/80308727
js去除数组中的null及空值
var arr = ['2','3','',null,undefined,'7',' ','9'];
var r = arr.filter(function (s) {
return s && s.trim(); // 注:IE9(不包含IE9)以下的版本没有trim()方法
});
console.log(r);
https://blog.csdn.net/qq_37796017/article/details/90229667
交换数组两个数位置(3种方法)
arr[index1] = arr.splice(index2, 1, arr[index1])[0];
arr[index1] = [arr[index2],arr[index2]=arr[index1]][0];
[a,b] = [b,a];
//www.greatytc.com/p/10cce4cce7f8
数组转对象 {key: value}
[{ id: 1, name: '张三' },{ id: 2, name: '李四' }] 转化为 {1:'张三', 2:'李四'}
let arr = [{ id: 1, name: '张三' },{ id: 2, name: '李四' }]
let obj = {}
arr.forEach(item => obj[item.value] = item.name)
https://www.cnblogs.com/pine007/p/16363288.html
js数组根据多个属性进行排序
https://blog.csdn.net/wyg1995/article/details/79432489
js根据json数据中的某一个属性来给数据分组
var arr = [{"Group":1,"Groupheader":"质量管理","Leftimg":"","Left":"","Min":"","Right":"","Rightimg":""},
{"Group":1,"Groupheader":"","Leftimg":"","Left":"","Min":"质量巡检","Right":"","Rightimg":""},
{"Group":2,"Groupheader":"设备管理","Leftimg":"","Left":"","Min":"","Right":"","Rightimg":""}]
var map = {}
var dest = [];
for(var i = 0; i < arr.length; i++){
var ai = arr[i];
if(!map[ai.Group]){
dest.push({
Group: ai.Group,
data: [ai]
});
map[ai.Group] = ai;
}else{
for(var j = 0; j < dest.length; j++){
var dj = dest[j];
if(dj.Group == ai.Group){
dj.data.push(ai);
break;
}
}
}
}
console.log(dest)
[
{
"Group": 1,
"data": [
{
"Group": 1,
"Groupheader": "质量管理",
"Leftimg": "",
"Left": "",
"Min": "",
"Right": "",
"Rightimg": ""
},
{
"Group": 1,
"Groupheader": "",
"Leftimg": "",
"Left": "",
"Min": "质量巡检",
"Right": "",
"Rightimg": ""
}
]
},
{
"Group": 2,
"data": [
{
"Group": 2,
"Groupheader": "设备管理",
"Leftimg": "",
"Left": "",
"Min": "",
"Right": "",
"Rightimg": ""
}
]
}
https://blog.csdn.net/firoly/article/details/54314367
三、对象
js对象属性遍历(for…in…)
通过for…in…循环来实现对对象属性的遍历输出
http://baijiahao.baidu.com/s?id=1599805069461530979&wfr=spider&for=pc
- 获取对象key值与value值的方式
var obj = {
'name': '杨',
'year': 27
}
var key = []
var value = []
for (var i in obj) {
key.push(i)
value.push(obj[i])
}
console.log(key)
console.log(value)
https://www.cnblogs.com/xpcool/p/9501323.html
删除对象属性 (delete)
for(var key in student){
delete student[key];
}
console.log(student);
https://www.cnblogs.com/isykw/p/6869084.html
将对象排序输出 -- Object.keys(obj)
eg:
var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // console: ['2', '7', '100']
对象长度 -- Object.keys(obj).length
1、传入对象,返回属性名
var obj = {'a':'123','b':'345'};
console.log(Object.keys(obj)); //['a','b']
2、传入字符串或者数组,返回索引
var str = 'ab1234';
console.log(Object.keys(obj)); //[0,1,2,3,4,5]
- 实例:
if (Object.keys(obj).length === 0) {
alert('请选择至少一个选项')
return
}
js 判断对象中所有属性是否为空
for (var key in this.ruleForm) {
if (this.ruleForm[key]) {
this.flag = true
}
}
https://www.cnblogs.com/crazycode2/p/8926103.html
js判断对象是否为空对象的几种方法
v-if=" JSON.stringify(obj) == '{}' " // 即obj为空对象时
四、json
json.parse (从一个字符串中解析出json对象)
var data = '{"name":"goatling"}'
console.log(JSON.parse(data)) // {name:"goatling"}
console.log(typeof JSON.parse(data)) // object
json.stringify (从一个对象中解析出字符串)
var data = {name:'goatling'}
console.log(JSON.stringify(data)) // '{"name":"goatling"}'
console.log(typeof JSON.stringify(data)) // string
https://www.cnblogs.com/goatling/p/6293692.html
五、计算
除法 向上取整(Math.ceil)
1.丢弃小数部分,保留整数部分
js:parseInt(7/2)
2.向上取整,有小数就整数部分加1
js: Math.ceil(7/2) // 4
3,四舍五入.
js: Math.round(7/2)
4,向下取整
js: Math.floor(7/2) // 3
https://blog.csdn.net/xinyuan_java/article/details/40300873
绝对值 (Math.abs)
Math.abs(7.2) // 7.2
Math.abs(-2.1) // 2.1
Math.abs(-8.1) // 8.1
余数(%)
var box = 10%3
console.log(box) // 1