Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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_Leaflet - Fatal编程技术网

javascript中不带双引号的字符串数组

javascript中不带双引号的字符串数组,javascript,jquery,leaflet,Javascript,Jquery,Leaflet,我想在javascript中将字符串数组转换为另一个不带引号的数组 [ "L.latLng(30.709455,76.688576)", "L.latLng(30.709461,76.68856)", "L.latLng(30.709461,76.68856)", "L.latLng(30.70947,76.6886)", "L.latLng(30.709461,76.68856)" ]; 预期结果: [ L.latLng(30.709455, 76.688576),

我想在javascript中将字符串数组转换为另一个不带引号的数组

[
  "L.latLng(30.709455,76.688576)",
  "L.latLng(30.709461,76.68856)",
  "L.latLng(30.709461,76.68856)",
  "L.latLng(30.70947,76.6886)",
  "L.latLng(30.709461,76.68856)"
];
预期结果:

[
  L.latLng(30.709455, 76.688576),
  L.latLng(30.709461, 76.68856),
  L.latLng(30.709461, 76.68856),
  L.latLng(30.70947, 76.6886),
  L.latLng(30.709461, 76.68856)
];
输出:-

[L.latLng(30.709455,76.688576),L.latLng(30.709461,76.68856),L.latLng(30.709461,76.68856),L.latLng(30.70947,76.6886),L.latLng(30.709461,76.68856)]

解决这个问题有多种方法

危险不安全的
eval
方式: 这种方法直接调用
eval
,执行传入的任何JavaScript代码,因此存在许多与此相关的安全问题

const newArray = stringArray.map(eval);
eval
带有白名单 使调用
eval
更安全的一种方法是使用允许模式的白名单,这确保代码不会访问其预期范围之外的任何变量

const L={};
L.latLng=(lat,lng)=>({lat,lng})
常量字符串数组=[
“L.latLng(30.709455,76.688576)”,
“L.latLng(30.709461,76.68856)”,
“L.latLng(30.709461,76.68856)”,
“L.latLng(30.70947,76.6886)”,
“L.latLng(30.709461,76.68856)”
];
const newArray=stringArray.map((行)=>{
如果(/L\.latLng\([0-9]+(?:\[0-9]+),-?[0-9]+(?:\[0-9]+)/.test(line)){
返回评估(行);
}
抛出新错误('指定的无效字符串:'+行);
});

log(newArray)
它不能是,除非
L.latLng
是一个函数,并且返回一个数据类型。可能理解什么是will help.xy问题,为什么数组是这样的?您可以使用
eval
执行JavaScript表达式,但是,如果输入不能被保存,则会带来很多安全风险trusted@madalinivascu这就是我得到的java Arraylist。我想在传单模块中使用该列表。输出将是
字符串
而不是
数组
const newArray = stringArray.map(eval);