迭代字典React Js无法正常工作

时间:2018-03-04 23:45:43

标签: javascript reactjs react-native

我的代码中有一个名为CarValues的字典,其中包含以下数据:

字典:CarValues

key ==>串

值==>阵列

  1. key =>本田,价值=>白色,黄色,红色,橙色
  2. key =>丰田,价值=>白色,黄色,绿色,黑色
  3. Key =>大众汽车价值=> 123,456,343
  4. 我想遍历密钥并生成如下字符串:

    var merge = Honda Car ='white'& Honda Car ='yellow'& Honda Car ='red'& ;本田的 = '桔子' &安培;丰田的 = '白色' &安培;丰田的 = '黄色' 和;丰田的 = '绿色' 和;丰田的 = '黑' &安培;大众的 = 123&安培;大众的 = 456&安培;大众的 = 343

    我在类中的一个方法中有类似下面的内容:

        var merge = '';
        Object.getOwnPropertyNames(this.state.CarValues).map(function(key){
            for (var x in key.values) {
                merge= merge.concat('&' + key + '='" + x + "'");
            }
    

    我不确定出了什么问题,但上述情况并不奏效。它表示在执行时键未定义。

    下面还试过,

        Object.keys(this.state.CarValues).map((key) => (
            **for (var value in  vals[key] }) {**
                merge = merge.concat('&' + key + '='" + x + "'");
            }
        **))**
    

    但是上面的编译错误表明Expression在粗体突出显示的行中是预期的。

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:(不要忘记添加this.state.



const CarValues = {
    Honda: ['white', 'yellow', 'red', 'orange'],
    Toyota: ['white', 'yellow', 'green', 'black'],
    Volkswagen: [123, 456, 343]
}

var q = Object.entries(CarValues)
    .map( ([key, value]) => `${key}=` + value.join(`&${key}=`))
    .join('&');

console.log(q)




答案 1 :(得分:0)

假设您的数据结构如下:

const cars = {
  Honda: ["white", "yellow", "red", "orange"],
  Toyota: ["white", "green"],
  Volkswagon: [123, 456]
};

你想要输出: HondaCar = '白色' &安培; HondaCar = '黄色' 和; HondaCar = '红' 和; HondaCar = 'orange'ToyotaCar =' 白色 '&安培; ToyotaCar =' green'VolkswagonCar = '123' 和; VolkswagonCar = '456'

这个怎么样:

const { cars } = this.state;
const keys = Object.keys(cars);
const s = keys.reduce((acc, car) => {
  const colours = cars[car].map(val => {
    return `${car}Car='${val}'`;
  });
  return `${acc}${colours.join('&')}`;
}, "");
console.log(s);