在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;}