精华内容
下载资源
问答
  • **注意,splice() 方法与 slice() 方法作用是不同,splice() 方法会直接对数组进行修改。():js中splice方法 splice(index,len,[item]) 注释:该方法会改变原始数组。splice有3个参数,它也可以用来替换/...

    splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

    **注意:该方法会改变原始数组。

    **注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改

    (一):js中的splice方法

         splice(index,len,[item])    注释:该方法会改变原始数组。

    splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

    index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空

    如:arr = ['a','b','c','d']

    删除 ----  item不设置

    arr.splice(1,1)   //['a','c','d']         删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

    arr.splice(1,2)  //['a','d']          删除起始下标为1,长度为2的一个值,len设置的2

    替换 ---- item为替换的值

    arr.splice(1,1,'ttt')        //['a','ttt','c','d']         替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1

    arr.splice(1,2,'ttt')        //['a','ttt','d']         替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1

     

    添加 ----  len设置为0,item为添加的值

    arr.splice(1,0,'ttt')        //['a','ttt','b','c','d']         表示在下标为1处添加一项‘ttt’

    看来还是splice最方便啦

    -------------------------------------------------------------------------------------------------------------------------------------------

    (二):delete       delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变

    如:delete arr[1]  //['a', ,'c','d']     中间出现两个逗号,数组长度不变,有一项为undefined

    -------------------------------------------------------------------------------------------------------------------------------------------

    (三):slice() 方法    slice() 方法可从已有的数组中返回选定的元素。

    arrayObject.slice(start,end)

    返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素


    展开全文
  • 对数组里面的某一项进行修改 如吧 item.category_value:’’ ‘’ 该为 tem.category_value: [] if (res.data && res.data.length > 0){ const arr = [] this.professionalParameter = res.data....
    • 对数组里面的某一项进行修改
    • 如吧 item.category_value: " " ----该为 tem.category_value: [ ]
    if (res.data && res.data.length > 0){
              const arr = []
              this.professionalParameter = res.data.forEach(item => {
                if(item.content_type === 2 &&  item.category_value === ''){
                  item.category_value = []
                }else if(item.content_type === 2 &&  item.category_value !== ''){
                  // 如果有值还需要单独处理
                }
                arr.push(item)
                return arr
              })
              this.professionalParameter = arr
            }
    
    • 拷贝出来的结果 和以前没关系 叫深拷贝 有关系被改变掉原有的对象 叫浅拷贝
    // 常用的一些法子   只对简单对象有用
    
    ... Object.assign(es6语法)
    
    JSON.parse(JSON.stringify(newObj));
    
    • 判断数据类型
    // 1) 怎么判断数据的类型
    // typeof object Array
    // Object.prototype.toString.call() 不能判断实例
    // instanceof 可以判断类型 判断是谁的实例 对象数组正则
    // constructor 构造函数  [].constructor       ({}).constructor 结果为 Object() { [native code] }
    
    
    • 能对数组 与对象进行 循环遍历的方法 for in
    • WeakMap 让对象为弱引用类型 避免无限死循环 v8 及时销毁
    const deepClone = (value ,hash = new WeakMap) => {
        if(value == null) return value; // 排除掉null 和undefine 的情况
        if(typeof value !== 'object') return value; // 这里包含了函数类型
        if(value instanceof RegExp) return new RegExp(value);
        if(value instanceof Date) return new Date(value);
        // .....
        // 拷贝的人可能是一个对象 或者是一个数组 (循环)  for in 
        let instance = new value.constructor; // 根据当前属性构造一个新的实例
        if(hash.has(value)){ // 先去hash中查看一下是否存在过 ,如果存在就把以前拷贝的返回去 
            return hash.get(value); // 返回已经拷贝的结果
        }
        console.log(value,'123')
        hash.set(value,instance);// 没放过就放进去
        // 用一个对象来记忆
        for(let key in value){ // 一层
            if(value.hasOwnProperty(key)){ // 将hash 继续向下传递 保证这次拷贝能拿到以前拷贝的结果
                //  instance[key] = deepClone[key]
                instance[key] = deepClone(value[key],hash); // 产生的就是一个新的拷贝后的结果
            }// 过滤掉原型链上的属性
        }
        return instance
    };
    let obj = {a:1};
    obj.b = obj; // 如果obj 已经被拷贝了一次 那下次 在用到obj的时候 直接返回就好了 不需要再次拷贝了
    console.log(deepClone(obj), '456');
    
    • 判断数组对象重复
    for (var i = 0; i < arr.length - 1; i++) {
      for (var j = i + 1; j < arr.length; j++) {
         if (arr[i].platform_id === arr[j].platform_id && arr[i].account_id === arr[j].account_id) {
           console.log("重名了!!");
         }
       }
     }
    
    • 判断数组中是否有重复出现的数据时 arr.length > 2
    let arr =''
          if(this.form.productName.length >1){
            arr = this.form.productName.filter(y => y.category_value === value)
          }
          if(value == ''){
            cb('属性值不能为空')
          } else if(arr.length > 1){
            cb(new Error('属性值不能重复'))
          } else{
            cb()
          }
    
    • es5
    const arr1 = [1,2,3,4,5],
          arr2 = [5,6,7,8,9];
    
    // 交集
    let intersection = arr1.filter(function (val) { return arr2.indexOf(val) > -1 })
    
    // 并集
    let union = arr1.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))
    
    // 补集 两个数组各自没有的集合
    let complement = arr1.filter(function (val) { return !(arr2.indexOf(val) > -1) })
    .concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))
    
    // 差集 数组arr1相对于arr2所没有的
    let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 })
    
    console.log('arr1: ', arr1);
    console.log('arr2: ', arr2);
    console.log('交集', intersection);
    console.log('并集', union);
    console.log('补集', complement);
    console.log('差集', diff);
    
    
    • es6
    const arr1 = [1,2,3,4,5],
          arr2 = [5,6,7,8,9];
    
    // 交集
    let intersection = arr1.filter(function (val) { return arr2.indexOf(val) > -1 })
    
    // 并集
    let union = arr1.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))
    
    // 补集 两个数组各自没有的集合
    let complement = arr1.filter(function (val) { return !(arr2.indexOf(val) > -1) })
    .concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))
    
    // 差集 数组arr1相对于arr2所没有的
    let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 })
    
    console.log('arr1: ', arr1);
    console.log('arr2: ', arr2);
    console.log('交集', intersection);
    console.log('并集', union);
    console.log('补集', complement);
    console.log('差集', diff);
    
    
    
    # 2个数组对象比较找出差异
    
    ```c
     var result = []
            // for (var i = 0; i < data.length; i++) {
            //   var obj = data[i]
            //   var isExist = false
            //   for (var j = 0; j < this.modelOne.workTargetVoList.length; j++) {
            //     var aj = this.modelOne.workTargetVoList[j]
            //     if (obj.id === aj.id) {
            //       isExist = true
            //       break
            //     }
            //   }
            //   if (!isExist) {
            //     result.push(obj)
            //   }
            // }
    
     var result = []
            data.forEach(one => {
              var isExist = false
              this.modelOne.workTargetVoList.forEach(e => {
                if (one.id === e.id) {
                  isExist = true
                }
              })
              if (!isExist) {
                result.push(one)
              }
            })```
    
    
    展开全文
  • excel使用

    2012-11-25 17:06:01
    比如,假设在某一河流生态调查工作表中,B2包含“物种”、B3包含“河鳟鱼”,B7包含总数45,那么: 输入“=CONCATENATE("本次河流生态调查结果:",B2,"",B3,"为",B7,"条/公里。")” 计算结果为:本次河流...
  •  实例104 使用Sort方法对数组进行快速排序 124  实例105 反转数组中元素顺序 125 4.3 常用集合使用 126  实例106 向班级集合中添加学生信息 126  实例107 使用哈希表对XML文件进行查询 127  实例108 ...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    2.23 枚举和一组预处理#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号容易方法吗? 位域 2.26 一些结构声明中这些冒号和数字是什么意思? 2.27 为什么人们那么喜欢用显式...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    2.23 枚举和一组预处理#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号容易方法吗? 31 位域 31 2.26 一些结构声明中这些冒号和数字是什么意思? 31 2.27 为什么人们...
  • 2.23 枚举和一组预处理#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号容易方法吗? 31 位域 31 2.26 一些结构声明中这些冒号和数字是什么意思? 31 2.27 为什么人们...
  • LINGO软件学习

    2009-08-08 22:36:50
    个模型中,原始集是基本对象,不能再被拆分成更小的组分。原始集可以由显式罗列和隐式罗列两种方式来定义。当用显式罗列方式时,需在集成员列表中逐个输入每个成员。当用隐式罗列方式时,只需在集成员列表中...
  • 3.3.3 DAY——返回日期中具体的某一天 129 3.3.4 WEEKDAY——返回当前日期是星期几 130 3.3.5 HOUR——返回小时数 131 3.3.6 MINUTE——返回分钟数 131 3.3.7 SECOND——返回秒数 132 3.4 文本与日期、时间...
  • 实例054 使用sort方法对数组进行排序 67 实例055 反转数组中元素顺序 68 3.4 常用集合使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用TreeSet生成不重复自动排序 随机...
  • 实例054 使用sort方法对数组进行排序 67 实例055 反转数组中元素顺序 68 3.4 常用集合使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用TreeSet生成不重复自动排序 随机...
  • 实例054 使用sort方法对数组进行排序 67 实例055 反转数组中元素顺序 68 3.4 常用集合使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用TreeSet生成不重复自动排序 随机...
  • 实例054 使用sort方法对数组进行排序 实例055 反转数组中元素顺序 3.4 常用集合使用 实例056 用动态数组保存学生姓名 实例057 用List集合传递学生信息 实例058 用TreeSet生成不重复自动排序随机数组 实例...
  • 实例054 使用sort方法对数组进行排序 67 实例055 反转数组中元素顺序 68 3.4 常用集合使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用TreeSet生成不重复自动排序 随机...
  • 实例054 使用sort方法对数组进行排序 实例055 反转数组中元素顺序 3.4 常用集合使用 实例056 用动态数组保存学生姓名 实例057 用List集合传递学生信息 实例058 用TreeSet生成不重复自动排序随机数组 实例...
  • 实例054 使用sort方法对数组进行排序 实例055 反转数组中元素顺序 3.4 常用集合使用 实例056 用动态数组保存学生姓名 实例057 用List集合传递学生信息 实例058 用TreeSet生成不重复自动排序随机数组 实例...
  • 实例054 使用sort方法对数组进行排序 实例055 反转数组中元素顺序 3.4 常用集合使用 实例056 用动态数组保存学生姓名 实例057 用List集合传递学生信息 实例058 用TreeSet生成不重复自动排序随机数组 实例...
  • 实例054 使用sort方法对数组进行排序 实例055 反转数组中元素顺序 3.4 常用集合使用 实例056 用动态数组保存学生姓名 实例057 用List集合传递学生信息 实例058 用TreeSet生成不重复自动排序随机数组 实例...
  • C#数据结构

    2013-12-10 11:49:54
    算法(Algorithm)是对某一特定类型问题求解步骤一种描述,是指令 有限序列。其中每条指令表示一个或多个操作。一个算法应该具备以下5个特 性: 1、有穷性(Finity):一个算法总是在执行有穷步之后结束,即...
  • 实例104 使用Sort方法对数组进行快速排序 实例105 反转数组中元素顺序 4.3 常用集合使用 实例106 向班级集合中添加学生信息 实例107 使用哈希表对XML文件进行查询 实例108 计算两个矩形矩阵乘积 第5章 ...
  • 实例104 使用Sort方法对数组进行快速排序 实例105 反转数组中元素顺序 4.3 常用集合使用 实例106 向班级集合中添加学生信息 实例107 使用哈希表对XML文件进行查询 实例108 计算两个矩形矩阵乘积 第5章 ...
  • 实例104 使用Sort方法对数组进行快速排序 实例105 反转数组中元素顺序 4.3 常用集合使用 实例106 向班级集合中添加学生信息 实例107 使用哈希表对XML文件进行查询 实例108 计算两个矩形矩阵乘积 第5章 ...
  •  函数作表达式中的一项出现在表达式中,以函数返回值参与表达式运算。这种方式要求函数是有返回值。例如: z=max(x,y)是一个赋值表达式,把max返回值赋予变量z。'Next of Page 2.函数语句  函数调用一般...
  • 实例104 使用Sort方法对数组进行快速排序 124 实例105 反转数组中元素顺序 125 4.3 常用集合使用 126 实例106 向班级集合中添加学生信息 126 实例107 使用哈希表对XML文件进行查询 127 实例108 计算两个矩形矩阵...
  • 例如,攻击者知道用户的某台服务器信任来自防火墙外面另台服务器的报文,则他 会先攻击防火墙外面的那台服务器,并设置个嗅探程序来查看用户网络报文。如果攻击者 不能攻破防火墙外面的这台服务器,他就无法打破...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

对数组的某一项进行修改