美文网首页
JS对象&JSON&数组操作

JS对象&JSON&数组操作

作者: 小7丁 | 来源:发表于2018-07-29 16:02 被阅读19次

    一、JSON 格式的数据需要遵循什么规则?

    • 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
    • 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使 用NaN, Infinity, -Infinity和undefined)。
    • 字符串必须使用双引号表示,不能使用单引号。
    • 对象的键名必须放在双引号里面。
    • 数组或对象最后一个成员的后面,不能加逗号。

    二、遍历 company 对象,输出里面每一项的值

    for (var i in company) {
      console.log(company[i])
    }
    

    三、分别举例说明数组方法push、pop、shift、unshift、join、splice、sort、join、reverse、concat的作用?

    var arr = [3,4,1,2,7,6]
    arr.push(9)//在数组的最后添加一个元素
    console.log(arr)//[3, 4, 1, 2, 7, 6, 9]
    
    var value= arr.pop()//把数组的最后一个元素弹出并返回
    console.log(value)//9
    console.log(arr)//[3,4,1,2,7,6]
    
    arr.unshift('x')//在数组第一位新增一位
    console.log(arr)//["x", 3, 4, 1, 2, 7, 6]
    
    var val = arr.shift()//将数组第一位拿出来
    console.log(val)// x
    console.log(arr)//[3, 4, 1, 2, 7, 6]
    
    var str = arr.join('-')//将数组变成字符串
    console.log(str)//3-4-1-2-7-6
    
    var arr2 = arr.splice(1,2)//从下标为1的元素开始,拿出来2个元素作为一个数组返回,原数组发生改变
    console.log (arr2)//[4, 1]
    
    arr.splice(1,0,8,9)//从下标为1的元素开始,拿出来0个元素,然后在1的后面加上8,9两个元素
    console.log(arr)//[3, 8, 9, 2, 7, 6]
    
    arr.sort()//会对数组进行排序
    console.log(arr)//[2, 3, 6, 7, 8, 9]
    
    arr.reverse()//会对数组经行倒序
    console.log(arr)//[9, 8, 7, 6, 3, 2]
    
    var arr3 = [4,2,7,1]
    console.log(arr.concat(arr3))//拼接两个数组形成一个新数组[9, 8, 7, 6, 3, 2, 4, 2, 7, 1]
    

    四、写一个函数,操作数组,返回一个新数组,新数组中只包含正数。

    function filterPositive(arr){
      var newArr  = []
      for(var i = 0; i < arr.length; i++){
        if(typeof arr[i] === 'number' && arr[i] > 0){
          newArr.push(arr[i])
        }
      }
      return newArr
    }
    var arr = [3, -1, 2, '饥人谷', true]
    var newarr = filterPositive(arr)
    console.log(newarr)
    console.log(arr)
    

    五、分别举例说明ES5数组方法 indexOf、forEach、map、every、some、filter、reduce的用法?

    var a = [2,6,4,-1,7,8]
    //indexOf:索引出一个所需的元素
    console.log(a.indexOf(2))//0
    
    //forEach遍历所有的元素
    a.forEach(function(value) {
      console.log( value + value)
    })
    
    //map遍历数组,回调函数返回值组成一个新数组返回
    console.log(a.map(function(e) {
      return e * e
    }))
    
    //every是所有函数的每个回调函数都返回true的时候才会返回true,当遇到false的时候终止执行,返回false
    a.every(function(val){
      return val >0
    })
    
    //some“存在”有一个回调函数返回true的时候终止执行并返回true,否则返回false
    a.some(function(val){
      return val >0
    })
    
    //filter返回数组的一个子集,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加(相当于过滤)
    console.log(a.filter(function(e){
      return e%2 ===0
    }))
    
    //reduce遍历数组,调用回调函数,将数组元素组合成一个值
    console.log(a.reduce(function(v1,v2) {
      return v1 + v2
    }))
    

    相关文章

      网友评论

          本文标题:JS对象&JSON&数组操作

          本文链接:https://www.haomeiwen.com/subject/spazmftx.html