辟邪剑谱【前端版】

159 阅读1分钟

js根据条件删除对象数组中的元素

this.EngineeringTable.splice( this.EngineeringTable.findIndex(item=>item.ConstructionAmount == NaN),1)

改变数据对象里面的属性名

 this.MaterialTable = JSON.parse(JSON.stringify(this.MaterialTable).replace(/id/g, "constructionPriceId"));

验证重复元素,有重复返回true;否则返回false

    isRepeat(arr) {
​      var hash = {};
​      for (var i in arr) {
​        if (hash[arr[i]]) {
​          return true;
​        }
​        // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可
​        hash[arr[i]] = true;
​      }
​      return false;
​    },

批量修改数组对象的属性名

this.listArry =listArrt.map(v=>{
return{latitude:v.y,longitude:v.x,address:v.address,icon:'iconzuobiaoaa'}})

驼峰转换下划线

toLine(name) {
    return name.replace(/([A-Z])/g,"_$1").toLowerCase();// }

删除数组对象其中属性一值的那个对象

let flowArr1 = this.storage.get("timeFlow");
	let temp = flowArr1.filter((item) => {
	return item.devId !== flowObj.devId  })
temp.push(flowObj);

APP调用高德地图直接导航

// #ifdef APP-PLUS
var packageName = 'com.autonavi.minimap';
var main = plus.android.runtimeMainActivity();
var packageManager = main.getPackageManager();
var PackageManager = plus.android.importClass(packageManager)
var packageInfo = packageManager.getPackageInfo(packageName,PackageManager.GET_ACTIVITIES);
if (packageInfo) {
var Uri = plus.android.importClass("android.net.Uri");
var url = "amapuri://route/plan?sourceApplication=maxuslife" +							`&sid=A&slat=${this.form.y}&slon=${this.form.x}&sname=${this.form.address}` +							`&did=B&dlat=${this.locationData.latitude}&dlon=${this.locationData.longitude}&dname=${this.locationData.address}&dev=0&t=0`;
var Intent = plus.android.importClass('android.content.Intent');
var intent = new Intent();							intent.setAction(Intent.ACTION_VIEW);					intent.addCategory(Intent.CATEGORY_DEFAULT);
var uri = Uri.parse(url);
//将功能Scheme以URI的方式传入data  
intent.setData(uri);						intent.setPackage("com.autonavi.minimap");
var main = plus.android.runtimeMainActivity();
main.startActivity(intent);
} else {
alert('未安装' + packageName + '')
}
// #endif 

自动补齐10位数

 nunColes(data, n) {
        if (String(data).length > n) return data;
        return (Array(n).join(0) + data).slice(-n);
      },

删除数组中的空

   arr = arr.filter(function(n) {
            return n
          });

视图层不更新 强制更新

 this.$forceUpdate()

改变对象的属性名

let arrRow=JSON.parse(JSON.stringify(row))
         var key1 = "leftText",
             key2 = "value";
         for (var i = 0; i < arrRow.length; i++) {
           arrRow[i][key1] = arrRow[i].dmdDate
           arrRow[i][key2] = arrRow[i].dmdAppValue
           delete arrRow[i].dmdDate
           delete arrRow[i].dmdAppValue
         }
  console.log(arr) //arr为属性改变后的数据

针对表单重置无效 输入框bug

//this.form对象
Object.keys(this.form).forEach((item) => {
          if (item !== 'companyCode') this.form[item] = ''
        })

二次打开表单清除表单验证 要在打开事件

if (this.$refs.子组件名称.$refs.editForm)
 
this.$refs.子组件名称.$refs.editForm.resetFields();

输入框二次赋值后不能 编辑 用set

this.$set(this.addEquipmentFrom,"financialContact",val.financialContact)
this.$set(this.addEquipmentFrom,"financialNumber", val.financialNumber)       this.$set(this.addEquipmentFrom,"financialIdNumber",val.financialIdNumber)

去除数组中的undefined

this.mins=this.mins.filter(d => d)

时间转换

var d = new Date();
              this.categoryNameForm.creationTime = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() +
                ' ' +
                d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();

测试

Vue中的$event

输入框只能输入数字

oninput="value=value.replace(/[^\d]/g,'')"
 maxLength='9'