字符串第一个字符和最后一个字符及扩展"/>
获得字符串第一个字符和最后一个字符及扩展
var str = "Hello World";console.log(str.substr(0,1));//Hconsole.log(str.substr(-1));//d
2018/04/08 追加:
如果字符串是一个链接,想要获得图片参数,先获取最后5个字符
再截取第一个字符(适用于git参数只有一个时且图片名称为一个字符的时候)
var str2 = "=1.jpg"; console.log(str2.substr(-5)); //1.jpgconsole.log(str2.substr(-5).substr(0,1)); //1
2018/04/10追加
通过下标找到对应的字符
var str="大家好,我是东,我来自南方。"
console.log(str[6]); //东
通过字符找到对应的下标
var str='大家好,我是东,来自南方。';
var n=str.indexOf("东");
console.log(n+1); //7 从1开始算起第几位,没有查找到这个字符的时候为n为-1
通过“,”将字符串分割成数组
var str="a,b,c,d,e,f";
var arr=str.split(",");
console.log(arr) //["a", "b", "c", "d", "e", "f"]
2019/07/17中途追加
通过toString将数组转行承字符串
2018/05/12追加
获得特殊字符前面或后面的所有字符
var str="item/jsonitem/httsdh.txt"; var strindex=str.indexOf(".");var data1 = str.substr(0,strindex);console.log(data1) //item/jsonitem/httsdhvar data2 = str.substr(strindex,str.length);console.log(data2) //.txtvar data3 = str.substr(strindex+1,str.length);console.log(data3) //txt
2018/06/20追加
去掉所有的引号
var reg = new RegExp('"',"g");
str = str.replace(reg, "");
2019/05/21追加
通过“ ”将字符串分割成数组
var str="abcdef";
var arr=str.split("");
console.log(arr) //["a", "b", "c", "d", "e", "f"]
2020/11/18追加 (splice有三个参数)
通过splice删除数组中某一项或多项
通过splice替换数组中某一项或多项
获取所有属性的值(前4个字母):
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8" />
</head>
<body><p val = 'data-name'>小明</p><p val = 'data-age'>22</p><p val = 'sex'>男</p><script src="jquery.min.js"></script><script>var arr=[];$('p').each(function(){arr.push($(this).attr('val').substr(0,4))})console.log(arr); //["data", "data", "sex"]</script>
</body>
</html>
获取所有属性的值为data的文本(前4个字母):
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8" />
</head>
<body><p val = 'data-name'>小明</p><p val = 'data-age'>22</p><p val = 'sex'>男</p><script src="jquery.min.js"></script><script>var arr=[];var v = '';$('p').each(function(){v=$(this).attr('val').substr(0,4);if(v == 'data'){arr.push($(this).text())}})console.log(arr); //["小明", "22"]</script>
</body>
</html>
2019/11/12追加
两个数组里面相同的都去掉
2019/11/27追加
数组中,只去掉name字段重复的
2020/03/16追加
parms:{"namespace": "teas.jwgl.bjxygl","pageName": "edit","data": {}}//parms.data最后需要转成“字符串”传到后台,赋值的时候需要转成“json”状态,然后赋值let type = dsf.type(this.parms.data);this.parms.data["_id"] = this.messdata._id;if(type === 'object'){this.parms.data = JSON.stringify(this.parms.data)//转字符串}this.dsf.http.post('teas/mobile/meta/persistData', _this.parms).done((res) => {if(res.success){this.dsf.layer.toast(res.message);}else{this.dsf.layer.toast(res.message);}_this.parms.data = JSON.parse(_this.parms.data);//转json}).error((res) => {this.dsf.layer.toast(res.message);})
2020/04/03 追加
用charAt()获取字符串中的字符(有些时候可以代替多层if(){}else if(){} 和switch_case )
function returnWeekday (){return "今天是星期" + "日一二三四五六".charAt ( new Date().getDay() );
}
console.log( returnWeekday() );
2020/08/08 追加
1、获取地址的参数
function UrlSearch() {var name, value;var str = location.href; //取得整个地址栏var num = str.indexOf("?")str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ]var arr = str.split("&"); //各个参数放到数组里for(var i = 0; i < arr.length; i++) {num = arr[i].indexOf("=");if(num > 0) {name = arr[i].substring(0, num);value = arr[i].substr(num + 1);this[name] = decodeURI(value);}}
}
var Git = new UrlSearch(); //实例化
console.log(Git.name); // dong
效果
2、如果在iframe页面中执行,需要修改成获取父级的整个地址栏
//iframe中获取父级地址栏的参数值
function UrlSearch() {var name, value;var str = window.parent.document.location.href; //取得整个父级地址栏var num = str.indexOf("?")str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ]var arr = str.split("&"); //各个参数放到数组里for(var i = 0; i < arr.length; i++) {num = arr[i].indexOf("=");if(num > 0) {name = arr[i].substring(0, num);value = arr[i].substr(num + 1);this[name] = decodeURI(value);}}
}
var Git = new UrlSearch(); //实例化
console.log(Git.age); // 18
2021/05/10 追加
编码之后的字符串重新解析成对象数组
事项相关方法
decodeURI("","UTF-8");
unescape();
JSON.parse();
var Group = dsf.getCookie("allGroup");
var newGroup = unescape(Group);
var garr=JSON.parse(newGroup)
var glist = [];
for(var i=0;i<garr.length;i++){if(glist.indexOf(garr[i].code) == -1){glist.push(garr[i].code)}}
//如果有001,并且条数大于1才显示,其他都不显示
if(glist.indexOf('001')!=-1 && glist.length>1){console.log('显示');
}else{console.log('隐藏')
}
2022/03/15追加
encodeURI('/meta/list/data?pageNum=1&pageSize=7&query=%7B"searchValue"%3A""%7D&order=%5B%5D&filter=%5B%5D&namespace=nc.courses.page&pageName=indexCourse')
'/meta/list/data?pageNum=1&pageSize=7&query=%257B%22searchValue%22%253A%22%22%257D&order=%255B%255D&filter=%255B%255D&namespace=nc.courses.page&pageName=indexCourse'
decodeURI('/meta/list/data?pageNum=1&pageSize=999&query=%257B%22searchValue%22%253A%22%22%257D&order=%255B%255D&filter=%255B%255D&namespace=nc.courses.page&pageName=indexCourse')
'/meta/list/data?pageNum=1&pageSize=999&query=%7B"searchValue"%3A""%7D&order=%5B%5D&filter=%5B%5D&namespace=nc.courses.page&pageName=indexCourse'
20220513追加
encodeURI('/meta/list/data?pageNum=1&pageSize=7&query={"searchValue":""}&order=[]&filter=[]&namespace=nc.courses.page&pageName=indexCourse')
'/meta/list/data?pageNum=1&pageSize=7&query=%7B%22searchValue%22:%22%22%7D&order=%5B%5D&filter=%5B%5D&namespace=nc.courses.page&pageName=indexCourse'
2022/10/14追加
获取数组中60及以上的值
let arr = [46,51, 60, 61, 80, 81];
let arr2 = arr.filter(num => num > 59);
console.log(arr2) // [60, 61, 80, 81]
获取对象数组中60及以上的值
let arr = [{name:'小明',fen:46},{name:'小张',fen:51},{name:'小李',fen:60},{name:'小赵',fen:61},{name:'小钱',fen:80},{name:'小孙',fen:81}
];
let arr2 = arr.filter(item => item.fen>59);
得到的数组中每一项添加一个单位
只获取数组中第一个达到60分的那条数据
得到小钱的下标
快速获取键 数组
let arr={'一班':[{name:"小白"},{name:"小赵"}],'二班':[{name:"小红"},{name:"小李"}],'三班':[{name:"小绿"},{name:"小钱"}]
}
console.log(arr)
let data=[]
Object.keys(arr).forEach(key=>{if(key=='二班'){data = arr[key]}
})
console.log('二班有这些人',data)
2022/12/02追加
判断一个值是否在二维数组中,并得到当前所在数组
let code = 66
let arr=[[11,22,33,44],[55,66,77,88],[99,110106,100],
]
let codeRow = []
for(var i=0,len=arr.length;i<len;i++){for(var j=0,len=arr[i].length;j<len;j++){if(arr[i][j]==code){codeaRow = arr[i]}}
}
console.log(codeaRow) //[55,66,77,88]
返回数据中找到value为55,66,77,88的值,得到一个新的数组
let codeRow = [55, 66, 77, 88]
let arr = [
{name:'小明',value:55,fen:88},
{name:'小明',value:66,fen:89},
{name:'小明',value:88,fen:90},
{name:'小明',value:77,fen:95},
{name:'小明',value:86,fen:95},
{name:'小明',value:44,fen:99},
{name:'小明',value:22,fen:95},
{name:'小明的',value:33,fen:97}
]
let newArr = []
for(var i=0,len=codeRow.length;i<len;i++){for(var z=0,len=arr.length;z<len;z++){if(arr[z].value == codeRow[i]){newArr.push(arr[z])}}
}
console.log(newArr)
得到数组后进行排序,取第一个值,(最大值)
call,apply
replace应用
接口返回的数据处理后再使用
需求:1、名称为“北京经济技术开发区”时,改为“经开区”
2、季度数据统一格式
var data = [{"name": "地区生产总值","V": "489.5","area": "东城区","time":"2022年01季度"},{"name": "地区生产总值","V": "489.5","area": "西城区","time":"2022年二季度"},{"name": "地区生产总值","V": "489.5","area": "丰台区","time":"2022年三季度"},{"name": "地区生产总值","V": "489.5","area": "北京经济技术开发区","time":"2022年04季度"}]
let NewData = []
NewData = data.filter(item=>{if(item.area == '北京经济技术开发区') {item.area = item.area.replace(item.area,'经开区')}if(item.time.indexOf('一')!=-1)item.time = item.time.replace('一','01')if(item.time.indexOf('二')!=-1)item.time = item.time.replace('二','02')if(item.time.indexOf('三')!=-1)item.time = item.time.replace('三','03')if(item.time.indexOf('四')!=-1)item.time = item.time.replace('四','04')return item
})
console.log(NewData)
slice应用
接口返回的所有数据只展示前3名的数据
var data = [{"area": "东城区"},{"area": "西城区"},{"area": "丰台区"},{"area": "经开区"},{"area": "通州区"},{"area": "朝阳区"}]
let three = data.slice(0,3)
console.log(three)
“其他项放在最后”
应用场景:饼状图把其他项排在最后
let arr = [{name:'小明',fen:46},{name:'小张',fen:51},{name:'小李',fen:60},{name:'其他',fen:65},{name:'小钱',fen:80},{name:'小孙',fen:81}
];
let lastitem = arr.filter(item => item.name=='其他');
let ind = arr.findIndex(item => item.name == '其他');
arr.splice(ind,1)
arr.push(lastitem[0])
console.log(arr)
更多推荐
获得字符串第一个字符和最后一个字符及扩展
发布评论