Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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 以较短的方式从数组中获取字符串_Javascript_Jquery_Dictionary - Fatal编程技术网

Javascript 以较短的方式从数组中获取字符串

Javascript 以较短的方式从数组中获取字符串,javascript,jquery,dictionary,Javascript,Jquery,Dictionary,下面的代码可以工作,但是否有一种方法可以以较短的方式获得结果,即直接从map函数,避免join行,或者避免在单独的行中声明arra let arra=$('.imga').toArray(); var arrb=阵列映射(函数(el){ 返回$(el).attr('data-id'); }); 设str=arrb.join(); console.log(str) 也许您应该尝试退出加入不必要的部分。像这样 let arra = $('.imga').toArray(), str =

下面的代码可以工作,但是否有一种方法可以以较短的方式获得结果,即直接从
map
函数,避免
join
行,或者避免在单独的行中声明
arra

let arra=$('.imga').toArray();
var arrb=阵列映射(函数(el){
返回$(el).attr('data-id');
});
设str=arrb.join();
console.log(str)

也许您应该尝试退出
加入
不必要的部分。像这样

let arra = $('.imga').toArray(), 
    str = '' ;

var arrb = arra.forEach(function(el) {
    str += el.dataset.id;
});

console.log(str);
你可以使用reduce

let arra=$('.imga').toArray();
var arrb=阵列减少((op、el、索引)=>{
op+=$(el.attr('data-id'))
如果(索引!==arra.length-1)op+=','
返回op;
},'');
控制台日志(arrb)

如果要减少行数,请在代码中使用链接:

let str = $('.imga').toArray().map(function(el) {
    return $(el).attr('data-id');
}).join();

在一行代码中尝试以下解决方案

conststring=[…document.queryselectoral('.imga')].map(item=>item.dataset.id).join(',');
console.log(字符串)

使用jQuery获取数据属性,然后,最后
加入,而不是强制转换到数组。因为代码使用回调参数而不是
this
,所以我们可以使用一个箭头函数将其全部粘贴在一行上

conststr=$('.imga').map((i,v)=>v.dataset.id.get().join();
console.log(str)


您可以使用数组理解,但它已从标准中删除。这里没有逗号,例如plsNo没有逗号?我不明白你的意思。也许只是我的英语不好,但我不明白逗号的意思。使用我提供的代码,您的结果与您的相同。但是又短又快。哦,好吧,你的问题中没有精确地表达出来。所以这里有点复杂。除最后一个逗号外,您必须在连接后添加逗号。或者每次删除最后一个字符(显然是无用的最后一个尾随逗号)。如果选择每次添加(最后一次除外),则forEach的第二个参数是loop@qadenza它可以避免您使用额外的连接,您所说的更短是什么意思?它只是关于行数吗?是的,但无论如何,您的解决方案是有创意和有用的。谢谢lot@MathKimRobin,如我所见,结果在这里设置为变量。我错了吗?您可以直接使用dom将其快速化,比如el.dataset.idUse
data()
来获取jQuery中的数据属性,而不是
attr()
<代码>返回$(el).data('id')
@Rorymcrossan我在共享之前测试了代码,它运行正常。你确定吗?@MathKimRobin也许OP在代码中的其他地方都使用它,而且它很熟悉。问题背后通常有丰富的背景。也许您可以在回答中提供一个非jquery解决方案。