Javascript 为数组中的每个键执行函数w/o循环
我正在寻找在将数组中的每个键连接到一个字符串之前执行Javascript 为数组中的每个键执行函数w/o循环,javascript,arrays,function,key,Javascript,Arrays,Function,Key,我正在寻找在将数组中的每个键连接到一个字符串之前执行encodeURIComponent(或其他一些函数)的最佳实践 这可以通过如下循环完成: var dynamicArray = ['uri1', 'uri2', 'hax&%hax']; var max = dynamicArray.length, i, url = ''; for (i=0;i<max;(i++)) { url += '/' + encodeURIComponent(dynamicArray[i]);
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 */
查看不兼容平台的map
实现。当然,
map
的实现在内部有一个循环
查看不兼容平台的map
实现。当然,在
map
的实现中有一个内部循环。在一些现代浏览器中,数组有一个“.map()”方法:
var encoded = dynamicArray.map(function(str) {
return encodeURIComponent(str);
});
或者没有您自己的函数包装器,在这种情况下,这并不是真正必要的:
var encoded = dynamicArray.map(encodeURIComponent);
其思想是为数组的每个元素调用“.map()”。它传递的函数应该返回一些结果,这些结果被收集到一个新数组中,该数组最终是返回值。然后你可以“.join()”那样做,或者做任何你需要的事情
有一个“polyfill”代码块,可用于在本机不支持它的浏览器中提供“.map()”。还请注意,许多实用程序库都有自己的“.map()”,其中一些库的语义稍有不同。例如,jQuery“.map()”对回调函数返回的值具有(对我来说不太好的)语义。在一些现代浏览器中,数组有一个“.map()”方法:
var encoded = dynamicArray.map(function(str) {
return encodeURIComponent(str);
});
或者没有您自己的函数包装器,在这种情况下,这并不是真正必要的:
var encoded = dynamicArray.map(encodeURIComponent);
其思想是为数组的每个元素调用“.map()”。它传递的函数应该返回一些结果,这些结果被收集到一个新数组中,该数组最终是返回值。然后你可以“.join()”那样做,或者做任何你需要的事情
有一个“polyfill”代码块,可用于在本机不支持它的浏览器中提供“.map()”。还请注意,许多实用程序库都有自己的“.map()”,其中一些库的语义稍有不同。例如,jQuery“.map()”对回调函数返回的值具有(对我来说是令人不快的)语义。为什么“encodeURIComponent(dynamicArray).join(“/”);”不起作用?为什么不想使用loop@Gunner因为“encodeURIComponent()”本质上不理解将数组中的所有字符串单独编码的思想。为什么“encodeURIComponent(dynamicArray).join('/');”不起作用?为什么不想使用loop@Gunner因为“encodeURIComponent()”本质上并不理解对数组中的所有字符串进行单独编码的思想。