키-값 쌍의 배열 변환 : 값에 대한 키 및 고유 키에 대한 값

사용자 4639281

키-값 저장소로 작동하는 배열 배열을 변환하고 싶습니다.

각 하위 배열은 다음 형식을 취합니다. ['tom',['hello','world']]여기서 [0]색인 ( 'tom')은 '키'이고 [1]색인 (배열)은 '값'입니다.

내 배열의 모든 '값'이 새 배열의 고유 키가되기를 원하고 배열의 키는 해당 값을 보유한 모든 이전 키를 포함하는 새 하위 배열을 구성해야합니다.

예를 들면 :

var myArray = [
    ['tom',['hello','world']],
    ['bob',['world','foo']],
    ['jim',['foo','bar']]
];

위의 입력은 다음과 같은 출력을 얻어야합니다.

var newArray = [
    ['hello',['tom']],
    ['world',['tom','bob']],
    ['foo',['bob','jim']],
    ['bar',['jim']],
];

어떻게하면 되나요?

오카

'솔루션'에 도달하기 전에 이것이 데이터를 저장하고 설명하는 데 매우 열악한 방법이라는 사실을 언급하고 싶습니다. 의 연관 배열과 유사한 것을 찾고 있다면 객체 작업PHP 방법을 배워야 합니다 .

JS의 객체는 단순히 고유 키 (속성)-> 값 쌍의 모음입니다.

객체로서 데이터 세트는 다음과 같습니다.

var before = {
  tom: ['hello','world'],
  dick: ['world','foo'],
  harry: ['foo','bar']
};

var after = {
  bar: ["harry"],
  foo: ["dick", "harry"],
  hello: ["tom"],
  world: ["tom", "dick"]
};

다음은 객체를 사용한 구현입니다. 순진하지만 훨씬 간단합니다.

DEMO

var before = {
  tom: ['hello','world'],
  dick: ['world','foo'],
  harry: ['foo','bar']
};

var after = {
  bar: ["harry"],
  foo: ["dick", "harry"],
  hello: ["tom"],
  world: ["tom", "dick"]
};


function resObj(obj) {
  var o = {};
  
  for (var k in obj) {
    for (var i = 0; i < obj[k].length; i++) {
      o[obj[k][i]] = o[obj[k][i]] || [];
      o[obj[k][i]].push(k);
    }
  }
  
  return o;
}

console.log('Expected:', after);
console.log('Actual:', resObj(before));


다음은 배열로 원하는 작업을 수행하는 방법의 예입니다. 순진하고 느리고 개선 될 수 있다고 확신하지만 그것은 내 대답의 요점을 벗어났습니다.

대략적인 데모. 객체를 교환으로 사용하므로 위와 거의 동일합니다.

DEMO

var inp = [
    ['tom',['hello','world']],
    ['dick',['world','foo']],
    ['harry',['foo','bar']]
];

var out = [
    ['hello',['tom']],
    ['world',['tom','dick']],
    ['foo',['dick','harry']],
    ['bar',['harry']]
];

function resArray(arr) {
  var q = {},
      o = [];
  
  for(var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr[i][1].length; j++) {
      q[arr[i][1][j]] = q[arr[i][1][j]] || [];
      q[arr[i][1][j]].push(arr[i][0]);
    }
  }
  
  for (var m in q) {
    o.push([m, q[m]]);
  }
  
  return o;
}

console.log('Expected:', out);
console.log('Actual:', resArray(inp));

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

배열 키 및 반환 값에 대한 PHP 루프

분류에서Dev

각 키 값에 대한 PHP 배열의 최대 값

분류에서Dev

PySpark의 고유 한 키-값 쌍

분류에서Dev

대량의 데이터에 대한 키 값 쌍 대 해시

분류에서Dev

Map <String, String []> 배열에 대한 JSON 스키마; 키 및 값 쌍과 같은 속성

분류에서Dev

해시를 통한 열거 및 동일한 키의 개별 키 값 쌍 유지

분류에서Dev

키 값 쌍에 대한 JSON 객체

분류에서Dev

키 값 쌍에 대한 정규식

분류에서Dev

공통 키 찾기 : 해시 할 수없는 키 및 값에 대한 dict의 값 쌍

분류에서Dev

열에 대한 키와 맵의 행에 대한 값

분류에서Dev

키 값 PHP에 의한 배열 형식

분류에서Dev

배열 키 값에 의한 PHP 순서

분류에서Dev

열의 새 값에 대한 SQL Server의 고유 키 제약 조건

분류에서Dev

내 배열의 값에 대한 키 가져 오기

분류에서Dev

다차원 배열의 특정 키에 대한 PHP 일치 값

분류에서Dev

모든 키-값 쌍이 고유 한 개체 배열에서 개체 찾기

분류에서Dev

Python Pandas-각 키 및 값을 고유 한 열에 매핑

분류에서Dev

Wordpress DB의 JSON : 값 / 키에 대한 두 개의 키 / 값

분류에서Dev

키 / 값 쌍의 가변 길이 집합에 대한 Logstash GROK 구문 분석

분류에서Dev

키-값 쌍에 대한 TypeScript 유형 별칭

분류에서Dev

문자열의 다른 키-값 쌍에 대한 데이터 그룹화

분류에서Dev

postgresql의 모든 json 키 / 값 쌍에 대한 행

분류에서Dev

키에 대한 배열 값이있는 사전을 Javascript의 목록으로 변환

분류에서Dev

자바 스크립트 : CSV를 키와 값에 대한 별도의 배열로 변환

분류에서Dev

Pandas Dataframe에서 특정 키-값 쌍에 대한 값 추출

분류에서Dev

BigQuery : 키 열의 고유 한 값

분류에서Dev

Java에서 키 값 쌍에 대한 JSON 배열을 만들고 JQuery 자동 완성에서 키 값을 분리하는 방법

분류에서Dev

날짜 열 및 3 키의 각 값에 대해 특정 열의 고유 값 계산

분류에서Dev

Kotlin의 키 및 값에 대한 정규식 패턴

Related 관련 기사

  1. 1

    배열 키 및 반환 값에 대한 PHP 루프

  2. 2

    각 키 값에 대한 PHP 배열의 최대 값

  3. 3

    PySpark의 고유 한 키-값 쌍

  4. 4

    대량의 데이터에 대한 키 값 쌍 대 해시

  5. 5

    Map <String, String []> 배열에 대한 JSON 스키마; 키 및 값 쌍과 같은 속성

  6. 6

    해시를 통한 열거 및 동일한 키의 개별 키 값 쌍 유지

  7. 7

    키 값 쌍에 대한 JSON 객체

  8. 8

    키 값 쌍에 대한 정규식

  9. 9

    공통 키 찾기 : 해시 할 수없는 키 및 값에 대한 dict의 값 쌍

  10. 10

    열에 대한 키와 맵의 행에 대한 값

  11. 11

    키 값 PHP에 의한 배열 형식

  12. 12

    배열 키 값에 의한 PHP 순서

  13. 13

    열의 새 값에 대한 SQL Server의 고유 키 제약 조건

  14. 14

    내 배열의 값에 대한 키 가져 오기

  15. 15

    다차원 배열의 특정 키에 대한 PHP 일치 값

  16. 16

    모든 키-값 쌍이 고유 한 개체 배열에서 개체 찾기

  17. 17

    Python Pandas-각 키 및 값을 고유 한 열에 매핑

  18. 18

    Wordpress DB의 JSON : 값 / 키에 대한 두 개의 키 / 값

  19. 19

    키 / 값 쌍의 가변 길이 집합에 대한 Logstash GROK 구문 분석

  20. 20

    키-값 쌍에 대한 TypeScript 유형 별칭

  21. 21

    문자열의 다른 키-값 쌍에 대한 데이터 그룹화

  22. 22

    postgresql의 모든 json 키 / 값 쌍에 대한 행

  23. 23

    키에 대한 배열 값이있는 사전을 Javascript의 목록으로 변환

  24. 24

    자바 스크립트 : CSV를 키와 값에 대한 별도의 배열로 변환

  25. 25

    Pandas Dataframe에서 특정 키-값 쌍에 대한 값 추출

  26. 26

    BigQuery : 키 열의 고유 한 값

  27. 27

    Java에서 키 값 쌍에 대한 JSON 배열을 만들고 JQuery 자동 완성에서 키 값을 분리하는 방법

  28. 28

    날짜 열 및 3 키의 각 값에 대해 특정 열의 고유 값 계산

  29. 29

    Kotlin의 키 및 값에 대한 정규식 패턴

뜨겁다태그

보관