Создание переменных на основе данных из массива. - PullRequest
0 голосов
/ 05 октября 2018

Я хотел бы использовать данные из объекта для окончательного назначения переменных на основе этой строки для создания селектора getElementById, который также основан на этой строке.

Я надеюсь использовать деструктуризацию массива для созданияпеременные, основанные на элементах в arr с возвращенными элементами в mappedArr, но если есть более простой способ, пожалуйста, включите.

У меня есть массив объектов.

Я создаю массив с именем arr.

Я беру массив dataSample и сопоставляю его.Когда я сопоставляю его, я помещаю element.divId в arr

. Я также возвращаю литерал шаблона, который заполняет правую часть присваивания для выделения document.getElementById.

Я хотел бы динамически назначать переменные, такие как ...

var first = document.getElementById("first");
var second = document.getElementById("second");

Я дошел до этого далеко, но я незнаю, что мне не хватает или что делать дальше.Кто-нибудь может помочь?Спасибо!

var dataSample = [
    {
        "sampleItem": "sampleItem",
        "divId": "first" 
    },
    {
        "sampleItem": "sampleItem",
        "divId": "second"
    }
]


var arr = [];

var mappedArr = dataSample.map(
  function(element) {
    arr.push(element.divId);
    return `document.getElementById("${element.divId}")`
  }  
  
);
// I would like to dynamically assign variables like...

// var first = document.getElementById("first");
// var second = document.getElementById("second");

// Etc., Etc.
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>

  
  
  <div id="first">hey</div>
  <div id="second">hey</div>
  <div id="third">hey</div>
</body>
</html>

1 Ответ

0 голосов
/ 05 октября 2018

Сначала .map массив dataSample для каждого элемента, связанного HTMLElement, с помощью getElementById, а затем вы можете сразу же деструктурировать с левой стороны, требуется только одна строка:

var dataSample = [
    {
        "sampleItem": "sampleItem",
        "divId": "first" 
    },
    {
        "sampleItem": "sampleItem",
        "divId": "second"
    }
]

const [first, second] = dataSample.map(({ divId }) => document.getElementById(divId));
console.log(first.id);
console.log(second.id);
<div id="first">hey</div>
<div id="second">hey</div>
<div id="third">hey</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...