React Native: массив значений ключа или hasmap? - PullRequest
0 голосов
/ 06 января 2019

Я хотел бы создать массив / коллекцию / hasmap в моем собственном приложении, где ключ связан со значением. Потому что я исхожу из PHP, я приведу короткий пример того, что я имею в виду. В PHP вы просто создаете массив с парой ключ / значение следующим образом:

$array = array(
    41 => "bar",
    65 => "foo",
);

Это то, что я тоже хочу иметь на своей карте реакции. Ключ, связывающий со значением. Прямо сейчас я делаю это так:

var votes = [];

responseJson.map((product, key) => {
  var productID = product.id;
  votes.push({
    productID: product.votes
  });
});

console.log("Votes:", votes);

Однако в конце я получаю следующее:

0: {productID: "0"}
1: {productID: "1"}
2: {productID: "2"}
3: {productID: "0"}
4: {productID: "8"}
5: {productID: "4"}

Во-первых, переменная productID печатается как имя, а не как значение. Первая ошибка ... И во-вторых, я хочу получить что-то вроде этого:

312: "0"
521: "1"
741: "2"
633: "0"
653: "8"
873: "4"

Ребята, вы хоть представляете, как я могу это сделать?

С уважением и спасибо!

Ответы [ 2 ]

0 голосов
/ 06 января 2019

В JavaScript вы можете использовать объект как метод для хранения пар ключ-значение.

Если вы хотите определить ключи, используя переменные, вы должны сделать что-то вроде этого

votes.push({
  [productID]: product.votes
});

Вы можете достичь того, чего хотите, выполнив что-то похожее на это -

var votes = {};

responseJson.map((product, key) => {
   var productID = product.id;
   votes[productID] = product.votes
});

console.log("Votes:", votes);

Надеюсь, это поможет.

0 голосов
/ 06 января 2019

Вы можете использовать обозначение скобки для него.

Пример:

var votes = [];

responseJson.map((product, key) => {
   var productID = product.id;
   votes.push({
    [productID]: product.votes
 });
});

console.log("Votes:", votes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...