복붙노트

[JQUERY] jQuery를 사용한 배열에 JS 객체 변환

JQUERY

jQuery를 사용한 배열에 JS 객체 변환

해결법


  1. 1.

    var myObj = {
        1: [1, 2, 3],
        2: [4, 5, 6]
    };
    
    var array = $.map(myObj, function(value, index) {
        return [value];
    });
    
    
    console.log(array);
    

    산출:

    [[1, 2, 3], [4, 5, 6]]
    

  2. 2.경우에 당신은 기능적 접근 방식을 찾고 있습니다 :

    경우에 당신은 기능적 접근 방식을 찾고 있습니다 :

    var obj = {1: 11, 2: 22};
    var arr = Object.keys(obj).map(function (key) { return obj[key]; });
    

    결과 :

    [11, 22]
    

    ES6 화살표 함수와 동일 :

    Object.keys(obj).map(key => obj[key])
    

    ES7으로 대신 (자세한 정보) Object.values ​​사용할 수 있습니다 :

    var arr = Object.values(obj);
    

    아니면 이미 밑줄 / 소호 - 대시를 사용하는 경우 :

    var arr = _.values(obj)
    

  3. 3.속성이 상속되지 않은 경우 당신이뿐만 확인하기 위해 사용할 수있을 것 같아요

    속성이 상속되지 않은 경우 당신이뿐만 확인하기 위해 사용할 수있을 것 같아요

    myObj= {1:[Array-Data], 2:[Array-Data]}
    var arr =[];
    for( var i in myObj ) {
        if (myObj.hasOwnProperty(i)){
           arr.push(myObj[i]);
        }
    }
    

    편집 - 당신은 또한 객체의 인덱스를 유지할 수 싶지만, 당신은 그들이 숫자이다 (당신은 인덱스 누락 된 정의되지 않은 값을 얻을 수 있는지 확인해야하는 경우 :

    function isNumber(n) {
      return !isNaN(parseFloat(n)) && isFinite(n);
    }
    
    myObj= {1:[1,2], 2:[3,4]}
    var arr =[];
    for( var i in myObj ) {
        if (myObj.hasOwnProperty(i)){
            if (isNumber(i)){
                arr[i] = myObj[i];
            }else{
              arr.push(myObj[i]);
            }
        }
    }
    

  4. 4.간단하게 할

    간단하게 할

    Object.values(obj);
    

    그게 다야!


  5. 5.당신은 최대 인덱스를 알고 있다면 당신은 당신이 다음을 할 수있는 객체에 :

    당신은 최대 인덱스를 알고 있다면 당신은 당신이 다음을 할 수있는 객체에 :

    VAR myObj로 = { 1 : 'C', 'D', 2 : 'A', 'B'] }, 인 myArr; myObj.length = 3; // 최대 인덱스 + 1 인 myArr = Array.prototype.slice.apply (myObj로); CONSOLE.LOG (인 myArr); // [미정 [ 'C', 'D'], [ 'A', 'B']


  6. 6.ES5 Object.keys ()는 물체에 직접 정의 된 속성을 포함하는 배열을 반환한다 (prototype 체인에 정의 된 특성을 제외) :

    ES5 Object.keys ()는 물체에 직접 정의 된 속성을 포함하는 배열을 반환한다 (prototype 체인에 정의 된 특성을 제외) :

    Object.keys(yourObject).map(function(key){ return yourObject[key] });
    

    ES6 화살표 기능이 한 단계를 취

    Object.keys(yourObject).map(key => yourObject[key]);
    

  7. 7.요즘,이 작업을 수행 할 수있는 간단한 방법이있다 : Object.values ​​().

    요즘,이 작업을 수행 할 수있는 간단한 방법이있다 : Object.values ​​().

    var myObj = {
        1: [1, 2, 3],
        2: [4, 5, 6]
    };
    
    console.log(Object.values(myObj));
    

    산출:

    [[1, 2, 3], [4, 5, 6]]
    

    이것은, jQuery를 요구하지 않습니다 그것은 ECMAScript를 2017에 정의되어 있습니다. 그것은 모든 현대적인 브라우저 (IE를 잊지)에 의해 지원합니다.


  8. 8.가장 좋은 방법은 자바 스크립트를 전용 기능을 사용하는 것입니다 :

    가장 좋은 방법은 자바 스크립트를 전용 기능을 사용하는 것입니다 :

    var myArr = Array.prototype.slice.call(myObj, 0);
    

  9. 9.

    x = [];
    for( var i in myObj ) {
        x[i] = myObj[i];
    }
    

  10. 10.ECMA 스크립트 5 :

    ECMA 스크립트 5 :

    Object.keys(myObj).map(function(x) { return myObj[x]; })
    

    ECMA 스크립트 2015 또는 ES6 :

    Object.keys(myObj).map(x => myObj[x])
    

  11. 11.어떻게 jQuery.makeArray에 대한 (OBJ)

    어떻게 jQuery.makeArray에 대한 (OBJ)

    이것은 내가 내 응용 프로그램에서했던 방법이다.


  12. 12.ES8 방법은 간단했다 :

    ES8 방법은 간단했다 :

    공식 문서

    CONST (OBJ) = {X 'XXX', Y : 1}; 편곡 = Object.values ​​(OBJ)를 보자; // [ 'xxx'가 1] CONSOLE.LOG (도착);


  13. 13.문제점을 해결하기는 매우 간단합니다

    문제점을 해결하기는 매우 간단합니다

    var my_obj = {1:[Array-Data], 2:[Array-Data]}
    Object.keys(my_obj).map(function(property_name){ 
        return my_obj[property_name]; 
    });
    

  14. 14.바이올린 데모

    바이올린 데모

    확장 bjornd의 대답.

    var myObj = {
        1: [1, [2], 3],
        2: [4, 5, [6]]
    }, count = 0,
        i;
    //count the JavaScript object length supporting IE < 9 also
    for (i in myObj) {
        if (myObj.hasOwnProperty(i)) {
            count++;
        }
    }
    //count = Object.keys(myObj).length;// but not support IE < 9
    myObj.length = count + 1; //max index + 1
    myArr = Array.prototype.slice.apply(myObj);
    console.log(myArr);
    

    참고

    Array.prototype.slice ()

    Function.prototype.apply의 ()

    Object.prototype.hasOwnProperty ()

    Object.keys ()


  15. 15.당신은 값으로 개체의 속성의 이름을 유지합니다. 예:

    당신은 값으로 개체의 속성의 이름을 유지합니다. 예:

    var fields = {
        Name: { type: 'string', maxLength: 50 },
        Age: { type: 'number', minValue: 0 }
    }
    

    사용 Object.keys (), Array.map ()와 Object.assign () :

    var columns = Object.keys( fields ).map( p => Object.assign( fields[p], {field:p} ) )
    

    결과:

    [ { field: 'Name', type: 'string', maxLength: 50 }, 
      { field: 'Age', type: 'number', minValue: 0 } ]
    

    설명:

    Object.keys () 소스의 모든 속성을 열거; () .MAP 각 속성에 => 함수를 적용 배열을 반환 Object.assign () 병합 이름과 각 속성에 대한 값입니다.


  16. 16.나는 사용자 정의 기능을했다 :

    나는 사용자 정의 기능을했다 :

        Object.prototype.toArray=function(){
        var arr=new Array();
        for( var i in this ) {
            if (this.hasOwnProperty(i)){
                arr.push(this[i]);
            }
        }
        return arr;
    };
    

  17. 17.몇몇 시험 후, 여기에 함수 배열 변환기에 대한 일반적인 목적은 :

    몇몇 시험 후, 여기에 함수 배열 변환기에 대한 일반적인 목적은 :

    당신은 개체가 :

    var obj = {
        some_key_1: "some_value_1"
        some_key_2: "some_value_2"
    };
    

    함수:

    function ObjectToArray(o)
    {
        var k = Object.getOwnPropertyNames(o);
        var v = Object.values(o);
    
        var c = function(l)
        {
            this.k = [];
            this.v = [];
            this.length = l;
        };
    
        var r = new c(k.length);
    
        for (var i = 0; i < k.length; i++)
        {
            r.k[i] = k[i];
            r.v[i] = v[i];
        }
    
        return r;
    }
    

    기능 사용 :

    var arr = ObjectToArray(obj);
    

    당신이 얻을 :

    그래서 다음과 같은 모든 키 및 값에 도달 할 수 있습니다 :

    for (var i = 0; i < arr.length; i++)
    {
        console.log(arr.key[i] + " = " + arr.value[i]);
    }
    

    콘솔에서 결과 :

    편집하다:

    또는 프로토 타입 형태 :

    Object.prototype.objectToArray = function()
    {
        if (
            typeof this != 'object' ||
            typeof this.length != "undefined"
        ) {
            return false;
        }
    
        var k = Object.getOwnPropertyNames(this);
        var v = Object.values(this);
    
        var c = function(l)
        {
            this.k = [];
            this.v = [];
            this.length = l;
        };
    
        var r = new c(k.length);
    
        for (var i = 0; i < k.length; i++)
        {
            r.k[i] = k[i];
            r.v[i] = v[i];
        }
    
        return r;
    };
    

    그리고 다음과 같이 사용합니다 :

    console.log(obj.objectToArray);
    

  18. 18.당신은 배열로 객체의 변환을 할 수있는 간단한 함수를 만들 수 있습니다,이 같은 당신이 순수 자바 스크립트를 사용하는 작업을 수행 할 수 있습니다

    당신은 배열로 객체의 변환을 할 수있는 간단한 함수를 만들 수 있습니다,이 같은 당신이 순수 자바 스크립트를 사용하는 작업을 수행 할 수 있습니다

    var objectToArray = function(obj) {
      var arr = [];
      if ('object' !== typeof obj || 'undefined' === typeof obj || Array.isArray(obj)) {
        return obj;
      } else {
        Object.keys(obj).map(x=>arr.push(obj[x]));
      }
      return arr;
    };
    

    또는이 하나

    var objectToArray = function(obj) {
      var arr =[];
      for(let o in obj) {
        if (obj.hasOwnProperty(o)) {
          arr.push(obj[o]);
        }
      }
      return arr;
    };
    

    및 전화 아래와 같은 기능을 사용할 수 :

    var obj = {1:'a', 2:'b', 3:'c', 4:'d', 5:'e'};
    objectToArray(obj); // return ["a", "b", "c", "d", "e"]
    

    또한 미래에 우리는 배열로 당신을 위해 모든 속성을 반환합니다 Object.keys (OBJ)과 비슷한 Object.values라고 (OBJ)를해야하지만 아직 많은 브라우저에서 지원되지 ...

  19. from https://stackoverflow.com/questions/6857468/converting-a-js-object-to-an-array-using-jquery by cc-by-sa and MIT license