【问题标题】:How to extract specific value from each element of an array and turn them into an array of object?如何从数组的每个元素中提取特定值并将它们转换为对象数组?
【发布时间】:2023-01-30 19:36:53
【问题描述】:

我想从下面数组的每个元素中提取名称和费率,并将它们变成一个对象数组

[
  'BTCUSDT Perpetual\t8h\t05:14:44\t0.0100%\t0.01%\t0.3000% / -0.3000%\t0.3000% / -0.3000%',
  'ETHUSDT Perpetual\t8h\t05:14:44\t0.0100%\t0.01%\t0.3750% / -0.3750%\t0.3750% / -0.3750%',
  'BCHUSDT Perpetual\t8h\t05:14:44\t-0.0135%\t0.01%\t0.3750% / -0.3750%\t0.3750% / -0.3750%'
]

以下是我希望得到的:

[
{"name":BTCUSDT, "rate":0.01%},
{"name":ETHUSDT,"rate":0.01%},
{"name":BCHUSDT,"rate":0.01%},
]

感谢您的任何建议。

【问题讨论】:

    标签: javascript arrays json object


    【解决方案1】:

    尝试使用arr.reduce()

    const arr = [
      'BTCUSDT Perpetual	8h	05:14:44	0.0100%	0.01%	0.3000% / -0.3000%	0.3000% / -0.3000%',
      'ETHUSDT Perpetual	8h	05:14:44	0.0100%	0.01%	0.3750% / -0.3750%	0.3750% / -0.3750%',
      'BCHUSDT Perpetual	8h	05:14:44	-0.0135%	0.01%	0.3750% / -0.3750%	0.3750% / -0.3750%'
    ];
    
    const res = arr.reduce((acc, item) => {
      debugger;
      const splitArr = item.split(' ');
      acc.push({
        [splitArr[0]]: splitArr[1].split('	')[4]
      });
      return acc;
    }, [])
    
    console.log(res)

    【讨论】:

      【解决方案2】:

      您可以结合使用数组映射和字符串拆分来实现此目的:

      const arr = [
        'BTCUSDT Perpetual	8h	05:14:44	0.0100%	0.01%	0.3000% / -0.3000%	0.3000% / -0.3000%',
        'ETHUSDT Perpetual	8h	05:14:44	0.0100%	0.01%	0.3750% / -0.3750%	0.3750% / -0.3750%',
        'BCHUSDT Perpetual	8h	05:14:44	-0.0135%	0.01%	0.3750% / -0.3750%	0.3750% / -0.3750%'
      ];
      
      const result = arr.map(item => {
        const elements = item.split('	');
        const name = elements[0].split(" ")[0];
        return {
          name,
          rate: elements[4]
        };
      });
      
      console.log(result);
      

      【讨论】:

        【解决方案3】:
        const arr = [
          'BTCUSDT Perpetual	8h	05:14:44	0.0100%	0.01%	0.3000% / -0.3000%	0.3000% / -0.3000%',
          'ETHUSDT Perpetual	8h	05:14:44	0.0100%	0.01%	0.3750% / -0.3750%	0.3750% / -0.3750%',
          'BCHUSDT Perpetual	8h	05:14:44	-0.0135%	0.01%	0.3750% / -0.3750%	0.3750% / -0.3750%'
        ];
        var data = [];
        const result = arr.reduce((data, value) => {
          const splitArray = value.split(' ');
          var params = {
            name: splitArray[0],
            rate: splitArray[1].split('	')[4]
          }
          data.push(params);
          return data;
        }, [])
        
        const output = result;
        console.log(output);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-08-06
          • 2021-11-13
          • 1970-01-01
          • 1970-01-01
          • 2019-06-09
          • 1970-01-01
          • 1970-01-01
          • 2020-03-29
          相关资源
          最近更新 更多