我正在寻找对数组中的每个键执行encodeURIComponent(或其他函数)的最佳实践,然后再将其连接到一个字符串。

可以使用这样的循环来完成:

var dynamicArray = ['uri1', 'uri2', 'hax&%hax'];
var max = dynamicArray.length,
i,
url = '';

for (i=0;i<max;(i++))
{
   url += '/' + encodeURIComponent(dynamicArray[i]);
}

alert(url);

/* RESULT: /uri1/uri2/hax%26%25hax */


但是我正在寻找这样的东西(没有循环):

encodeURIComponent(dynamicArray).join('/'); /* This won't work */
encodeURIComponent(dynamicArray.join('/')); /* Can't do this, wrong result */

最佳答案

dynamicArray.map(encodeURIComponent).join('/');


检出MDC对于不兼容平台的map实现。
当然,在内部,map的实现中存在一个循环。

关于javascript - 无数组循环中每个键的执行功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6214490/

10-12 06:30