Separate key and value pairs into two arrays

后端 未结 4 1408
忘了有多久
忘了有多久 2021-01-13 22:48

What would be the best way to go about separating the key and values into two different arrays so that this -

var data = {\"A Key\": 34, \"Another Key\": 16         


        
相关标签:
4条回答
  • 2021-01-13 23:25

    You can loop through the properties with a for in loop, and then just assign them to arrays as needed.

    Make sure you check whether the key is a property of the object, and not of the prototype.

    var data1 = [];
    var data2 = [];
    
    for (var key in p) {
      if (p.hasOwnProperty(key)) {
        data1.push(key);
        data2.push(p[key]);
      }
    }
    
    0 讨论(0)
  • 2021-01-13 23:31
    var data = {"A Key": 34, "Another Key": 16, "Last Key": 10};
    
    var data1 = [],
        data2 = [];
    
    for (var property in data) {
    
       if ( ! data.hasOwnProperty(property)) {
          continue;
       }
    
       data1.push(property);
       data2.push(data[property]);
    
    }
    
    1. Set up two different blank arrays.
    2. Iterate through the enumerable properties of the object.
    3. If data does not have this property explicitly (i.e. not higher up the prototype chain), skip this iteration.
    4. Push the key and its value to their respective arrays.

    jsFiddle.

    0 讨论(0)
  • 2021-01-13 23:42
    data1=[];
    data2=[]
    for (x in data) {
       data1.push(x);
       data2.push(data[x]);
    }
    
    0 讨论(0)
  • 2021-01-13 23:44

    This function will split the data object into a keys and a values array. It returns an object, containing both arrays.

    function splitObj(data){
      var keys = [],
          vals = [];
      for (var l in data) {
       if (data.hasOwnProperty(l){
        keys.push(l);
        vals.push(data[l]];
       }
      }
      return {keys: keys,vals:vals};
    }
    
    0 讨论(0)
提交回复
热议问题