【问题标题】:Get concatened string from variable in javascript object with map function使用map函数从javascript对象中的变量获取连接字符串
【发布时间】:2023-04-10 03:35:01
【问题描述】:

我在下面有这个对象:

var products = [
        {
           "id":"xxx",
           "name":"AAA"
        },
        {
           "id":"xxx",
           "name":"BBB"
        }
     ];

我正在尝试映射对象并使用 map 函数从所有值“name”生成一个连接字符串,然后加入连接逗号:

var result = products.map(p => Object.values(p.name).join(','));

但是我通过 console.log 得到了这个输出:

"A,A,A, ,B,B,B"

那里多了一个逗号,而且它使用每个字符而不是完整的键名值。 我没有以正确的方式访问数组对象吗?

【问题讨论】:

  • 您调用Object.values() 每个名称字符串,而不是只想映射name 属性,然后在映射结果上调用join。 var result = products.map(p => p.name).join(', ');

标签: javascript arrays dictionary


【解决方案1】:

目前,您正在将字符串转换为数组,并在每个字符之间用逗号连接。您需要将连接移到地图迭代器函数之外。也不需要 Object.value() 调用。

const result = products
  .map((product) => product.name)
  .join(', ')

var products = [
  {
     "id":"xxx",
     "name":"AAA"
  },
  {
     "id":"xxx",
     "name":"BBB"
  }
];

const result = products.map((product) => product.name).join(', ')

document.getElementById('root').innerHTML = result
<div id="root"></div>

【讨论】:

    【解决方案2】:

    我真的不明白你的问题,但我猜你正在尝试连接名称值。如果是,请使用下面的代码。

    var result = products.map(p => Object.values(p.name).join('')).join('');
    

    【讨论】:

      【解决方案3】:

      使用Array.mapArray.join

      逻辑

      • 使用Array.mapproducts 创建名称列表。
      • 从该列表中创建一个带有Array.join 的字符串

      var products = [{"id":"xxx","name":"AAA"},{"id":"xxx","name":"BBB"}];
      console.log(products.map(item => item.name).join(','))

      【讨论】:

        猜你喜欢
        • 2021-03-03
        • 2023-03-23
        • 2012-01-29
        • 1970-01-01
        • 2015-08-18
        • 1970-01-01
        • 1970-01-01
        • 2022-10-21
        • 1970-01-01
        相关资源
        最近更新 更多