Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 为数组中的每个键执行函数w/o循环_Javascript_Arrays_Function_Key - Fatal编程技术网

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()”本质上并不理解对数组中的所有字符串进行单独编码的思想。