js中常⽤到的⼀些解决问题⽅法(整理⼀些真正有效能够使⽤到项⽬中的⽅法)(等待不断更新积累)将字符串中某个字符串删除
⽅法⼀:使⽤replace函数替换(⽐较建议使⽤
//去除字符串中含有的-
var str = '178-1980';
//注意:此处不可写作:place('-', '');要写作:str = place('-', '');
// replace:返回新的字符串,⼀定要重新接收,不然替换不了
str = place('-', '')//最后获得的是1781980
⽅法⼆:使⽤字符串分割函数再聚合
var str = "189-1909";
var a = str.split("-");//会得到⼀个数组,数组中包括利⽤-分割后的多个字符串(不包括-)
var newStr = a.join("");//数组转成字符串,元素是通过指定的分隔符进⾏分隔的。此时以空串分割:即直接连接//最后获得1891909
includes() ⽅法⽤于判断⼀个字符串是否包含在另⼀个字符串中,根据情况返回 true 或 false。
下⾯代码判断a中是否包含'-'
a.includes('-')
筛选
函数Array.prototype.filter()
var words = ['1234', '12345', '123456', '1234567'];
const result = words.filter(word => word.length > 6);
console.log(result);//> 打印出数组["1234567"]
排序
单个条件
function compareboxId(a, b) {
if (a.boxId < b.boxId) return -1;
if (a.boxId > b.boxId) return 1;
return 0;
}
多个条件:将多个条件拼接成⼀个新的Key值,然后对这个key值进⾏排序
function compareRegistered(a, b) {
const akey = a.registered+a.boxId;
const bkey = b.registered+b.boxId;
if (akey > bkey) return -1;
if (akey > bkey) return 1;
js合并两个数组return 0;
}
当排序时,要求必须等于某个字符串时
⽅法⼀:
sort = (array) =>{
let newArrayAll = [];
let newArray = [];
let newArrayApp = [];
let newArrayEmpty = [];
for(var i=0;i<array.length;i++){
if(array[i].channelType==='aaa'||array[i].channelType==="abb"){
newArray.push(array[i])
}else if(array[i].channelType==='bbb'){
newArrayApp.push(array[i])
}else{
newArrayEmpty.push(array[i])
}
}
newArrayAll = at(newArrayApp).concat(newArrayEmpty); return newArrayAll;
}
⽅法⼆:
sort = (arr) =>{
let flightArr1 = arr.filter((ele) => {
console.log("===ele",ele.channelType)
return ele.channelType==='基地办公系统'||ele.channelType==='办公⽹'; });
let flightArr2 = arr.filter((ele) => {
return ele.channelType==='⼿机APP';
});
let Flights = [...flightArr1, ...flightArr2];
return Flights;
}
⽅法三:
sort = (arr) =>{
arr.sort((a,b)=>{
return a.channelType -b.channelType
})
return arr;
}
控制页⾯内所有console.log是否在控制台打印出数据
const debugSwitch = false;//true是打印
if (!debugSwitch) {
console.log = () => {};
}
js截取字符串
stringObject.split("url")[1] 这个⽅法可以⽤来截取url中特定字符串数组元素的添加
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将⼀个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将⼀个或多个新元素添加到数组开始,数组中的元素⾃动后移,返回数组新长度arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将⼀个或多个新元素插⼊到数组的指定位置,插⼊位置的元素⾃动后移,返回""。
字符判断
⽅法1:
var p = /[0-9]/; var b = p.test(string);//true,说明有数字
var p = /[a-z]/i; var b = p.test(string);//true,说明有英⽂字母
var p = /[0-9a-z]/i; var b = p.test(string);//true,说明有英⽂字母或数字
⽅法2:
<script type="text/javascript">
$("#validate").click(function(){
if(isSimplePwd($("#password").val())<3){
alert("密码过于简单!");
}
})
/**
*简单验证密码强度
*必须包含数字、⼩写字母、⼤写字母、特殊字符其三
*如果返回值⼩于3 则说明密码过于简单
*/
function isSimplePwd(s){
if(s.length<6){
return 0;
}
var ls = 0;
if(s.match(/([a-z])+/)){
ls++;
}
if(s.match(/([0-9])+/)){
ls++;
}
if(s.match(/([A-Z])+/)){
ls++;
}
if(s.match(/[^a-zA-Z0-9]+/)){
ls++;
}
return ls;
}
</script>
匹配为电话号码
componentDidMount(){
// this.judgeText("030-4557777")
this.judgeText("1234567890")
}
judgeText=(text)=>{
var value = text;
console.log("value",value)
var reg0 = /\d{10,11}/; // 长度为10-11的数字
var reg1 = /^((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/; // 固定电话
if ( st(value) || st(value) ) {
console.log("电话号码")
} else {
console.log("不是电话号码")
return ;
}
}
整除
//求余数
document.write(1%4);
document.write(6%4);
/
/求商
console.info(1/4);
console.info(6/4);
//求商,取整
console.info(parseInt(1/4));
console.info(parseInt(6/4));
console.info('----');
//天花板取整
console.il(1/4));
//地板取整
console.info(Math.floor(1/4));
object
获取object的key:Object.keys(对应的object)
获取object的value:Object.values(对应的object)
将⼀个数组变成字典
let webglObjectParamsArray = webglObjectParams?.map(item=>{
console.log('==========item====',item)
return [item?.code,item.value]
});
console.log('========webglObjectParamsArray=====',webglObjectParamsArray) let webglObjectParamsJson = Object.fromEntries(webglObjectParamsArray);
console.log('========webglObjectParamsJson=====',webglObjectParamsJson)合并两个object
let obj = {...old,...new}
记住新的⼀定要放在后⾯
合并两个array
let obj = [...old,...new]
记住新的⼀定要放在后⾯
es6数组的flat(),flatMap()函数
作⽤:处理获取⼀个数组内的数组
[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]
将⼀个数组有共同部分放⼀起
引⽤lodash,使⽤groupBy
console.log('======kds',_.groupBy(mesh, 'code'));
js⽴即执⾏函数:⽅便我们在react代码的return下⾯定义函数箭头函数
{
(()=>{
let newGroupList = [];
if(!_.isEmpty(groupList)){
for (let key in groupList) {
newGroupList = groupList[key];
}
}
return(
<div></div>
)
})}()
也可以类似定义命名函数
(function (x) {
console.log('x + x = ', x + x);
})(5) // x + x = 10
将两个数组的值做映射
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论