JS实战之函数封装

  1. checkBox组件编码
    使用场景:前端复选框(三个)前两个被勾选,应将’1, 2’编码成’110’的格式传给后台;
    举例:将字符串(‘1, 2’或‘2, 4, 5, 7’)编码成(‘110’或‘0101101’)的格式;
    inParams: inputStr, length
    function checkBoxEncode(inputStr, length){
    var defualtArr = new Array(length);
    var checkBoxArr = inputStr.split(’,’);
    for(var i = 0; i < checkBoxArr.length; i++){
    defualtArr[i] = 0;
    }
    if(!!checkBoxArr.length){
    defualtArr[checkBoxArr[j]-1] = 1;
    }
    return defualtArr.join(‘,’);
    }

  2. checkBox组件解码
    使用场景:后台返回’1, 2’, 前台解码成’1, 2’, 使checkBox组件回显勾选项;
    举例:将字符串(‘1, 2’或‘2, 4, 5, 7’)编码成(‘110’或‘0101101’)的格式;
    inParams: resultStr
    function checkBoxEncode(resultStr){
    var parseArr = [ ];
    if(resultStr){
    for(var i = 0; i < resultStr.length; i++){
    if(resultStr.charAt(i) == ‘1’){
    parseArr.push(i + 1);
    }
    }
    }
    return parseArr.join(’,’);
    }

  3. 删除Json中的某些元素
    inParams: resJson, delEleArr
    function deleteEleFromJson(resJson, delEleArr){
    for(var i = 0; i < delEleArr.length; i++){
    if(delEleArr[i] in resJson){
    delete resJson[delEleArr[i]];
    }
    }
    return resJson;
    }

  4. 前端回显楼层号(适用于1 - 99层)
    使用场景:后台返回’22’, 前台展示成’第二十二层’;
    举例:将字符串数组([‘9’, ‘10’, ‘20’, ‘28’])回显成([‘第九层’, ‘第十层’, '第二十层’, ‘第二十八层’])的格式
    function getFloorName(numStrArr) {
    var newStrArr = new Array(100)
    for (var i = 0; i < numStrArr.length; i++) {
    var temp = numStrArr[i]
    var arr = [‘十’, ‘一’, ‘二’, ‘三’, ‘四’, ‘五’, ‘六’, ‘七’, ‘八’, ‘九’]
    var num = Number(temp)
    var str = ‘’
    if (num < 10) {
    str += arr[num]
    } else if (num === 10) {
    str = arr[0]
    } else {
    if (temp[0] === ‘1’) {
    str = arr[0] + arr[temp[1]]
    } else if (temp[1] === ‘0’) {
    str = arr[temp[0]] + arr[0]
    } else if (temp[0] > 1) {
    str = arr[temp[0]] + arr[0] + arr[temp[1]]
    }
    }
    str = ‘第’ + str + ‘层’
    newStrArr[num] = str
    }
    return newStrArr
    }

  5. 时间差(今天距离目标日期00:00时间的天数)
    使用场景:后台返回’1569671608999’时间戳, 前台计算距离(传入未来时间戳)未来某天剩余的天数;
    同理,可以计算当前时间距离过去时间(传入过去时间戳)走过的天数
    inParams: targetDateTimeStamp(目标日期的时间戳)
    function getDiffDate(targetDateTimeStamp) {
    let diff, diffDay;
    let date1 = new Date(targetDateTimeStamp)
    let date2 = new Date()
    date1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate())
    date2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate())
    diff = date1 < date2 ? date2.getTime() - date1.getTime() : date1.getTime() - date2.getTime()
    diffDay = diff / (24 * 60 * 60 * 1000)
    return diffDay
    }
    6.两个联动字段的非空校验
    使用场景:主要身份证明文件类别(字典项)与主要身份证明文件代码的非空校验;
    校验规则:两者必须同时为空或不为空;若其中一个为空,则此控件提示:此处不能为空
    inParams: firstField, secondField(传入两个控件)
    function twoLinkFieldsIsNullTip(firstField, secondField){
    var resFlag = { flag: true };
    var firstFieldVal = typeof(firstField.getValue()) === ‘string’ ? firstField.getValue().trim() : firstField.getValue();
    var secondFieldVal = typeof(secondField.getValue()) === ‘string’ ? secondField.getValue().trim() : secondField.getValue();
    if(firstFieldVal && !secondFieldVal){
    resFlag.flag = false;
    prompt(‘此处不能为空!’);
    return resFlag;
    }
    if(secondFieldVal && !firstFieldVal){
    resFlag.flag = false;
    prompt(‘此处不能为空!’);
    return resFlag;
    }
    return resFlag;
    }
    调用方式:
    var firstField = form.getChild(“ID_TYPE”), secondField = form.getChild(“ID_Number”);
    var result = twoLinkFieldsIsNullTip(firstField, secondField);
    if(!result.flag){
    return;
    }
    7. JSON对象转化换行格式
    原格式:
    “{
    “997000000000606“:{system:1071121071163 , custom"edb”}
    "997000000000606”:{system’:“1071162|1071163”,“custom”:“edb”}
    }”
    转化格式:
    “997000000000606“:
    system:1071121071163
    custom"edb”
    "997000000000808”:
    system’:“1071162|1071163”
    “custom”:"edb”
    代码实现:
    a = JSON.parse(‘{
    “997000000000606”: {
    “system”: “1071121071163”,
    “custom”: “edb”
    },
    “997000000000808”: {
    “system”: “1071162|1071163”,
    “custom”: “edb”
    }
    }’)
    var strRes = “”
    for(var key in a){
    var keyStr = key + “\n”
    var itemStr = JSON.stringify(a[key])
    itemStr = itemStr.substring(1, itemstr.length - 1)
    itemStr = itemStr.replace(/[,,]/g, “\n”)

    itemStr = keyStr+itemStr
    itemStr += “n”
    strRes += itemStr
    }
    console.log(‘strRes’, strRes)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值