【问题标题】:React Native: Key Value array or hasmap?React Native:键值数组还是哈希图?
【发布时间】:2019-06-01 07:32:56
【问题描述】:

我想在我的反应原生应用程序中创建一个数组/集合/hasmap,其中一个键链接到一个值。因为我来自 PHP,所以我会给你一个简短的例子来说明我的意思。在 PHP 中,您只需创建一个带有键/值对的数组,如下所示:

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

这也是我想在我的 react native 地图中拥有的东西。链接到值的键。现在我正在这样做:

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"

你们知道我该怎么做吗?

诚挚的问候,谢谢!

【问题讨论】:

    标签: arrays reactjs react-native hashmap


    【解决方案1】:

    您可以使用括号表示法。

    例子:

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

    【讨论】:

    • 是的,但是我在投票数组中仍然有数组。我想让它直接链接,而不需要在数组中包含数组!
    • 您是否愿意将 responseJson 发送给我,以便我为您提供更好的解决方案,谢谢
    • 看看下面的答案。这就是我一直在寻找的。不过谢谢!
    【解决方案2】:

    在 javascript 中,您可以使用对象作为存储键值对的方法。

    如果你想使用变量定义键,你应该这样做

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

    你可以通过做类似的事情来实现你想要的-

    var votes = {};
    
    responseJson.forEach((product, key) => {
       var productID = product.id;
       votes[productID] = product.votes
    });
    
    console.log("Votes:", votes);
    

    希望对您有所帮助。

    【讨论】:

    • 谢谢,这正是我想要的!
    猜你喜欢
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2012-08-17
    • 2011-02-15
    • 2015-07-24
    • 2012-05-13
    相关资源
    最近更新 更多