찾다

 >  Q&A  >  본문

javascript - 변수를 객체의 키로 사용하고 이를 배열에 푸시하는 방법은 무엇입니까?

a와 b의 키는 모두 동일합니다

으아아아

아니면 더 좋고, 더 효율적이고, 더 멋진 방법이 있을까요?

내가 이루고 싶은 효과는 이것이다

으아아아

이 문제의 근본 원인은 객체를 선언할 때 변수를 키로 사용하는 방법입니다.

世界只因有你世界只因有你2706일 전1532

모든 응답(4)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-07-05 11:02:13

    ES6에서는 객체 정의 시 表达式를 객체의 속성 이름으로 사용하여 리터럴을 사용할 수 있습니다

    으아악

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-05 11:02:13

    질문 설명을 수정한 후 답변해주세요

    이 문제의 근본 원인은 객체를 선언할 때 변수를 키로 사용하는 방법입니다

    변수가 문자열이나 숫자인 경우

    으아악

    변수가 객체인 경우

    그럼 ES6 Map을 사용해야 합니다

    코드를 보면 이해하기 쉽습니다. 이전 방법의 상위 집합입니다. 으아악

    스크린샷


    새로운 글쓰기 방법

    으아악

    사용

    reduce 으아악

    스크린샷


    수정 전

    으아악

    달성

    어허. . 오랫동안 문제 설명을 읽은 후에 무엇을 하고 싶은지 잘 모르겠습니다

    함수명과 before after를 보고 추측해 볼까요. 객체 a와 객체 b의 서로 다른 속성과 값을 각각 before와 after에 넣어볼까? 그렇다면 아래 코드를 살펴보세요

    으아악

    스크린샷

    회신하다
    0
  • 欧阳克

    欧阳克2017-07-05 11:02:13

    실제로 귀하의 질문은
    다음 질문으로 요약됩니다.

    으아악

    key는 문자열 "key"로 구문 분석되며 예상 변수는 key 입니다(예: key="abc",value="123"<). /code> "key",期望是变量key 例当key="abc",value="123"
    上述实际变成{"key":"123"} 应该是{"abc":"123"}
    最直接的答案是 var o = {}; o[key] = value; ret.push(o); 위의 내용은 실제로 {"key":"123"}가 되며 {"abc":"123"}여야 합니다
    가장 직접적인 대답은 < code>var o = {}; o[key] = value; ret.push(o); 그런데 더 간단한 방법이 있나요?

    토론 결과는 다음과 같습니다

    으아악

    참고: 위 답변은 시간순으로 나열되어 있습니다. 아직 완전히 시도된 답변은 없습니다. 사용하기 전에 주의 깊게 테스트해 보시기 바랍니다.

    어떤 솔루션을 선택할지는 단순성, 성능 및 가독성을 기준으로 평가하고 싶습니다. 사람들마다 의견이 다릅니다

    QQ 그룹의 토론을 요약한 것입니다. 저는 단지 포터일 뿐입니다.

    회신하다
    0
  • typecho

    typecho2017-07-05 11:02:13

    ES6은 객체 속성을 변수로 지원하며 작성 방법은 다음과 같습니다.

    으아악

    푸시 매개변수에서 이 작성 방법을 사용하세요.

    회신하다
    0
  • 취소회신하다