• 你不知道的js中对象,数组互相转换


           今天在做对象和JSON的课后左右时,有一道题想了很久,没有思路,然后看了答案,又查看了相关资料,突然豁然明朗。现在稍微做总结。

            题目:

         

    •  拿到题目的思路,一开始做题思路有三点:

          (1)使用for-in循环遍历

            (2) 将对象转换为数组

            (3) 使用arr.join('&')进行字符串拼接。

            第一步和第三步比较好实现,主要是卡在第二步,将对象转换为数组,如何引用呢?有以下两种方法:  

    1. 使用object.keys(obj)将对象转变为数组。使用map()遍历数组,回调函数即代码中的箭头函数组成一个新数组返回,新数组索引结构和原数组一致。
    let obj = {
        name: 'jirengu',
        age: 5
    }
    let result = traverse(obj)
    
    //输出 "name=jirengu&age=5"
    console.log(result)  
    
    //在答案区实现这个函数
    
    function traverse(obj) {
    
    return Object.keys(obj).map(key => `${key} =${obj[key]}`).join('&')
    
    }

          2.使用for-in循环,通过arr.push()分别将key:value添加到数组中。

    let obj = {
        name: 'jirengu',
        age: 5
    }
    let result = traverse(obj)
    
    //输出 "name=jirengu&age=5"
    console.log(result)  
    
    //在答案区实现这个函数
    function traverse(obj) {
    let arr =[]
    for(let key in obj){
        arr.push(key+'='+obj[key])
    }
    return arr.join('&')
    }
    • 总结:常见的数组转换为对象方法:
    • 1.Object.keys(obj)及Object.values(obj)分别将对象的属性及属性值转换为数组
    • let obj = {
          name: 'jirengu',
          age: 5
      }
      console.log(Object.keys(obj))
      console.log(Object.values(obj))

      2.使用for-in循环构建函数

      let obj = {
          name: 'jirengu',
          age: 5
      }
      let res1 =objectValue(obj)
      let res2 =objectKey(obj)
      function objectValue(obj){
      let arr1 =[]
      for(let key in obj){
      arr1.push(obj[key])
      }
      console.log(arr1)
      }
      
      function objectKey(obj){
      let arr2 = []
      for(let key in obj){
      arr2.push(key)
      }
      console.log(arr2)
      }

      3.使用Object.entries(obj)返回给定对象可枚举属性键值对数组

    • let obj = {
          name: 'jirengu',
          age: 5
      }
      
      console.log(Object.entries(obj))

      参考来源:https://xiedaimala.com/tasks/042f7b83-ca22-4d0f-ae82-a338fa6bec8a/quizzes/c2532a6c-02aa-484b-a796-35336e9f0a55

                           https://blog.csdn.net/weixin_41534645/article/details/80379243

  • 相关阅读:
    6)从左到右依次递增,从上到下依次递减的数组
    2)PHP代码运行过程
    1)session总结
    3)ARP到底属于网络层还是链路层
    (2)链表中的一级指针和二级指针的问题
    javascript 封装ajax(多版本)
    javaScript中的两个叹号(!!)
    css获取背景中指定的位置
    解析this.initialize.apply(this, arguments);
    ul中嵌套div导致布局混乱
  • 原文地址:https://www.cnblogs.com/mernva/p/12769920.html
Copyright © 2020-2023  润新知