Javascript Js数组到不同类型字符串的数组

Javascript Js数组到不同类型字符串的数组,javascript,angularjs,arrays,json,Javascript,Angularjs,Arrays,Json,我正在尝试创建一个允许从表单发送json的表单 我的一个输入应该是[“1”、“2”、“3”]或[“foo”、“bar”] 我的用户在表单的单个字段中传递数组时遇到问题 我希望我的用户能够输入(html)[1,2,3],并将其转换为[“1”、“2”、“3”]或[foo,bar],并且必须转换为[“foo”,“bar”] Stringify显然在这种情况下不起作用 我很难做到这一点,因为我事先不知道输入字段将是数组、字符串或数字。 我目前正在将表单内容存储在控制器中的一个对象中,但显然,当输入[1,

我正在尝试创建一个允许从表单发送json的表单

我的一个输入应该是
[“1”、“2”、“3”]
[“foo”、“bar”]
我的用户在表单的单个字段中传递数组时遇到问题

我希望我的用户能够输入(html)
[1,2,3]
,并将其转换为
[“1”、“2”、“3”]
[foo,bar]
,并且必须转换为[“foo”,“bar”]

Stringify显然在这种情况下不起作用

我很难做到这一点,因为我事先不知道输入字段将是数组、字符串或数字。

我目前正在将表单内容存储在控制器中的一个对象中,但显然,当输入[1,2,3]时,我得到“[1,2,3]”,当输入
[“1”,“2”,“3”]
时,传递的数据我得到
[\“1\”,“2\”,“3\”]

是否有自动执行此操作的工具/功能

注: -1字段的输入需要是一个数组,因为我事先不知道数组的类型,也不知道它将有多少项。
-我使用的是angular,但我认为这更像是一个js问题。

您可以使用此
cast
函数:

var arr = [1,2,3];
arr = arr.map(function(el){return el.toString()});
//The output array will be ["1","2","3"]
函数转换{
如果(s.match(/^\s*\[.\]\s*$/){//数组表示法
返回s.trim();
}
//删除包装引号(如果存在)
返回s.trim();
}
//用于演示的I/O
document.querySelector('input')。addEventListener('input',function(){
var s=转换(该.value);
document.querySelector('span').textContent=JSON.stringify;
});
您的输入:

输出JSON:
您可以使用
map
函数:

var arr = [1,2,3];
arr = arr.map(function(el){return el.toString()});
//The output array will be ["1","2","3"]
对于[foo,bar],我认为你不能转换它,因为它是一个变量,你会得到它的值而不是它的名称


我希望这对您有所帮助。

请通知用户输入
1,2,3
foo,bar
,而不是用户输入
[1,2,3]

让arr=[];
for(让document.queryselectoral的输入(“表单输入”)){
arr.push(input.value.split(“,”);
}
console.log(
JSON.stringify(arr[0])
,JSON.stringify(arr[1])
)

输入数字,数字,数字:

输入单词,单词,单词:
解决这个问题似乎很简单,只需检测字符串是否以括号开头和结尾,然后用逗号分割字符串,然后用引号输出结果字符串数组。要尝试类似的方法吗?在您的示例中,输入什么内容才能将[“1”、“2”、“3”]作为输出?好像我不太明白,我明白了,你永远不想得到数字类型。我更新了我的答案——事实上,这使它更简单。太好了!非常感谢