正在将字符串变量转换为数组

Converting String variable to array

本文关键字:转换 数组 变量 字符串      更新时间:2023-10-05

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

我可以创建我需要的新数组,但我似乎将其存储为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
  };

当我查看已创建的数据时,它的格式都是正确的,但我需要尝试删除开头和结尾的双引号,使其成为数组,而不是字符串值。请在此处查看字符串值的外观。

我只想知道如何通过简单地删除开头和结尾的双引号将其从字符串中转换出来,或者我在这里完全走错了方向。感谢您的帮助!

谢谢!

试试这个:

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

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

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

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

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

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

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
}