将String变量转换为数组

时间:2016-03-30 18:00:19

标签: javascript arrays string

我创建了从数组中获取某些数据的方法,并通过添加一些预定义的字符串来创建一个包含该数组的新字典,

我能够创建我需要的新数组,但我似乎将它存储为String变量而不是数组。这是我的代码:

var createContestantsDropdownlist = ContestantInfoDropdown();

function ContestantInfoDropdown() {
var ContestantTest = ['Contestant 1', 'Contestant 2', 'Contestant 3', 'Contestant 4'];  
var option = [];
    for (var i=0;i<ContestantTest.length;i++){
    option += '{value: \'' + ContestantTest[i] + '\'},';
    }
    option += '{value: \'Contestant 5\'}';
    return option
  };

当我查看已创建的数据时,它的格式正确,但我需要尝试删除开头和结尾的双引号以使其成为数组,而不是一个字符串值。 See here how the string value Looks

我想知道的是如何通过简单地删除开头和结尾处的Double引号来从字符串转换它,或者我完全在错误的轨道上。任何帮助表示赞赏!

谢谢!

4 个答案:

答案 0 :(得分:2)

试试这个:

option.push({value: ContestantTest[i]});

这实际上会将对象推送到数组上而不是像现在这样构建一个字符串。

答案 1 :(得分:0)

+=变量上使用options将其转换为string。请改用options.push(ContestantTest[i])

答案 2 :(得分:0)

不应连接字符串,而应将值推送到数组上,如:

{{1}}

示例小提琴https://jsfiddle.net/c9j1hure/

答案 3 :(得分:0)

var createContestantsDropdownlist = ContestantInfoDropdown

function ContestantInfoDropdown()
{
    var ContestantTest = ['Contestant 1', 'Contestant 2', 'Contestant 3', 'Contestant 4']
    var option = ContestantTest.map(function(x) { return { value: x } })
    option.push ({value: 'Contestant 5'})
    return option
}