简介: 特征是编辑规则前最重要的一环,如果特征编写不规范会导致报错乃至造成规则计算错误,严重时更会导致公司的经济损失。

一、 类型分类

  1. String
  2. Number
  3. Boolean
  4. Array
  5. Function
  6. Object

二、 类型详解

  1. string是字符串类型
    • 格式是"字符串abc123.?"
    • 默认为空""
  2. number是数字类型
    • 除数字外都不可输入,否则会报错或为NaN(不是数字)
    • 默认为0
  3. boolean是布尔类型
    • 只有true(真)和false(假)两种结果
    • 默认为false
  4. Array是数组类型
    • 格式是[1,"a"]
    • 默认为[]
    • 数组对应值得位置叫做下标,第一个下标为0,第二个下标为1,以此类推..
  5. function是函数类型
    • 格式为function test(data){};
    • 可以理解为讲一堆代码放到其他地方编写处理
  6. object是对象
    • 格式为{"object":"1"}
    • object中存储的为键值对,可以理解为:前为名字:后为名字对应的内容

三、 常用类型判空

  1. String:!function.checkNull(string)
  2. Number:number !== 0
  3. Array:array.length >= 0 (数组长度大于等于0)
  4. Object:object.keys(a).length !== 0 (将键值对转化为数组后判断数组长度是否不等于0)

四、 逻辑运算

  1. if..else
    • 如果..就..反之..
    • 格式:if(条件){代码块}else{代码块}
  2. switch case
    • 使用switch中所写变量的值与每个case进行比对,相等则执行case后的代码
    • 格式: switch(变量){case 条件: 代码 ;break(如此条件符合,则停止再向下比对)}

五、 集合处理的方式方法

  1. fliter
    • 过滤一些不需要的值从而得到自己想要的值
    • 例:data.fliter(item => item.age >= 0) //item代表前面的data,item是个参数,名字不做限制
  2. set
    • set类型可以简单理解为是个json,set的特性是会将数据去重
    • 声明方式: var set1 = new Set([{"data":"1"}])
    • set方法
      1. add(value) //添加某个值,返回添加值后的set
      2. delete(value) //删除某个值,返回一个布尔值(true/false),表示是否删除成功
      3. has(value) //返回一个布尔值(true/false),表示该值是否为set内的值
      4. clear() //清除所有值,没有返回值
  3. 数组
    • 声明方式: var arr = [1,2,3]
    • array方法
      1. sort() //排序
      2. push() //插入
      3. concat() //拼接数组
      4. indexOf() //从前往后开始查找第一个指定元素,返回下标
      5. lastIndexOf() //从后往前查找第一个指定元素,返回下标
  4. 循环
    • for 格式:for(var i=0; i<str.length; i++){代码}
      1. str是需要循环处理的字段名,一般为数组格式需要循环
      2. i可以理解为循环次数,赋值为0是为了对应str数组的下标
      3. i需要小于str的长度是因为如果循环超出str内元素会报错
      4. i++是在每次循环完成一次后i+1,以对应str数组的下标向前推进
      5. break 停止循环
      6. continue 跳出当前循环开始新循环
    • forEach 格式: str.forEach(itrm => {需循环执行的代码...})
      1. 当前循环方式不可使用break停止循环
      2. forEach相较于上面for循环来说更加简便,item就可以代表当前循环的对象,进而操作对象中的值

六、 变量声明与各个情况特征模板

  1. var 变量名(必须字母开头) = 123 (义为你起的变量名的值为123,其他类型遵循格式声明变量)
  2. for循环

    var num = [1,2,3];
    var count = 0;
    for(var i = 0; i < num.length; i++){
    count++;
    }
    $.feature = count;//count返回3
    

    上述代码用来取num数组内值的数量,当然直接用num.length取这个数组的长度也可以,这里只是为了举例,需要举一反三.

  3. forEach循环

    var num = [1,2,3];
    var count = 0;
    num.forEach(a => {
    if(a === 1){
    count++
    }
    })
    $.feature = count;//count返回1
    

    上述代码是用forEach的方式来循环num数组,a参数就代表num中的每一个值,循环第一次代表1;循环第二次代表2,以此类推。在循环内使用if来判断当前参数a是否为1,为1的话count就+1;num数组中只有一个1故此count返回1;

  4. filter过滤

    var num = [1,2,3];
    var str = num.filter(item => item > 2)
    $.feature = str//str返回3
    

    上述代码是使用filter方法来过滤掉不需要的数据,item代表num中的每一个值,当item大于2时,将过滤后的num赋值给str(这里的str只是变量名,没有任何意义)

  5. if判断

    var num = 1;
    var str = "不是1"
    if(num === 1){
    str = "是1"
    }
    $.feature = str//str返回是1
    

    这里的代码是用来判断一个变量是否为1,如果为1的话进行其他操作

注:

  1. $.feature是特征中必须有的,假设需要返回name就是$.feature = name其他同理
  2. 每个特征只能同时返回一个值(包装为对象除外)
  3. 特征中引用的其他特征必须在当前特征中使用(引用特征格式:$.引用特证名)

results matching ""

    No results matching ""