将分隔的字符串转换为数组

时间:2021-01-04 20:56:59

标签: javascript reactjs

ProjectIds 变量当前正在返回一个对象,其字符串值以逗号分隔。像这样:

我正在用这样的代码创建一个对象,返回我:

 const projectIds = scheduleFieldData[config.name].toString().split(', ').map(x => ({label: x, value: x}))
            if(config.name === 'project'){
              console.log(projectIds);
            }


//{label: "10,10,10", value: "10,10,10"} 

我希望输出是

{label: ["10"],["10"],["10"], value: ["10"],["10"],["10"]}

我尝试过的:

 const projectIds = scheduleFieldData[config.name].toString().split(', ').map(x => ({label: x, value: x}))
            if(config.name === 'project'){
              console.log(projectIds.split(', '));
            }

但是我得到了:

ProjectIds.split() 不是函数。有人有想法吗?

3 个答案:

答案 0 :(得分:0)

你不能有这样的变量:

let a = ['a'], ['b'], etc..

你应该有类似的东西

let a = [['a'], ['b'], etc..]

将"a, b, c"转换为[['a'], ['b'], ['c']]

const convert = (str) => {
   str = str.replace(/\s/g, "")
   return str.split(",").map(c => [c])
}

答案 1 :(得分:0)

var projectIds = {
  label: "10,10,10",
  value: "10,10,10"
};

var result = {};
result.lablel = projectIds.label.split(',').map(i => {
  return [i];
});
result.value = projectIds.value.split(',').map(i => {
  return [i];
});
console.log(result)

答案 2 :(得分:0)

您试图实现的结果无效,也许这就是您要寻找的:

const projectIds = {label: "10,11,12", value: "13,14,15"}
console.log(projectIds.label.split(',')); // ["10", "11", "12"]
console.log(projectIds.value.split(',')); // ["13", "14", "15"]