Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中使用map和join的优化方法?_Javascript_Arrays_Hash - Fatal编程技术网

在javascript中使用map和join的优化方法?

在javascript中使用map和join的优化方法?,javascript,arrays,hash,Javascript,Arrays,Hash,优化了从阵列显示名称的方式 array = [ { id: 1, name: 'abc' }, { id: 2, name: 'abc2' }, { id: 3, name: 'abc3' } ] 我们如何提取名称 abc, abc2, abc3... 我试过了 a.map(x => x.fullName).join('') 在字符串长度超过15之后,如何添加… 我不想迭代整个数组,因为我不会显示所有的名称。这可

优化了从阵列显示
名称的方式

array = [
  {
    id: 1,
    name: 'abc'
  },
  {
    id: 2,
    name: 'abc2'
  },
  {
    id: 3,
    name: 'abc3'
  }
]
我们如何提取
名称

abc, abc2, abc3...
我试过了

a.map(x => x.fullName).join('')
在字符串长度超过
15
之后,如何添加


我不想迭代整个数组,因为我不会显示所有的名称。

这可以使用JS的.forEach来完成

let surnames = "";
array.forEach(obj=>{ surnames+= ` ${obj.name}`});
array.slice(0,3).map(x=>x.fullName).join(',')+'…'


这是最佳的优化解决方案。我现在可以考虑了。

使用一个简单的for循环,如果字符串长度大于15,则终止循环?您需要
a.map(x=>x.name).join(',')
。添加省略号也可以使用.const b=a.map(x=>x.name).join(',');返回b.长度<15?b:b.切片(0,15)+'…'无论如何,使用映射将迭代整个数组。这正是我想要避免的。我意识到我误解了你的问题。对于您的情况,一个简单的
For of循环更合适。“我们如何添加……字符串长度超过15”效果良好,下面是一个工作示例,这是错误的。如果前3个用户的名字很长,而连接返回50多个字符,该怎么办?只需使用
for..of
循环:
for(数组的常量{name}){output+=`${name},`;if(output.length>15){output=output.slice(0,15)+'…';break;}