代码之家  ›  专栏  ›  技术社区  ›  fightstarr20

javascript json-将项转换为新数组

  •  2
  • fightstarr20  · 技术社区  · 6 年前

    我用stringify转换了一个javascript对象,如下所示。

    var myJSON = JSON.stringify(response);
    
    {"0":{"trigger":17},"1":{"trigger":3},"2":{"trigger":40},"3":{"trigger":4},"4":{"trigger":19},"5":{"trigger":70},"6":{"trigger":80},"7":{"trigger":0},"8":{"trigger":0},"9":{"trigger":5},"10":{"trigger":4}}
    

    我试图创建一个数组,但只创建触发器的值。

    我应该循环响应并这样做还是有更好的方法像map?

    3 回复  |  直到 6 年前
        1
  •  5
  •   Nenad Vracar    6 年前

    你可以使用 map 方法对 Object.values .

    const json = {"0":{"trigger":17},"1":{"trigger":3},"2":{"trigger":40},"3":{"trigger":4},"4":{"trigger":19},"5":{"trigger":70},"6":{"trigger":80},"7":{"trigger":0},"8":{"trigger":0},"9":{"trigger":5},"10":{"trigger":4}}
    
    const arr = Object.values(json).map(({trigger}) => trigger);
    console.log(arr)
        2
  •  3
  •   31piy    6 年前

    可以使用 Object.values 然后申请 Array.map 在集合中获取 trigger 只有:

    const obj = {"0":{"trigger":17},"1":{"trigger":3},"2":{"trigger":40},"3":{"trigger":4},"4":{"trigger":19},"5":{"trigger":70},"6":{"trigger":80},"7":{"trigger":0},"8":{"trigger":0},"9":{"trigger":5},"10":{"trigger":4}};
    
    const arr = Object.values(obj).map(item => item.trigger);
    console.log(arr);
        3
  •  2
  •   brk    6 年前

    使用 for..in 迭代对象并将值推到 trigger 到另一个数组

    let data = {
      "0": {
        "trigger": 17
      },
      "1": {
        "trigger": 3
      },
      "2": {
        "trigger": 40
      },
      "3": {
        "trigger": 4
      },
      "4": {
        "trigger": 19
      },
      "5": {
        "trigger": 70
      },
      "6": {
        "trigger": 80
      },
      "7": {
        "trigger": 0
      },
      "8": {
        "trigger": 0
      },
      "9": {
        "trigger": 5
      },
      "10": {
        "trigger": 4
      }
    }
    let arrVal = [];
    
    for (var keys in data) {
    
      arrVal.push(data[keys].trigger)
    };
    console.log(arrVal)