js把字符串变成数组

把 s="A,B,C"
变成
[

{
id: 1,
title: 'A',
},
{
id: 2,
title: 'B',
},
{
id: 3,
title: 'C'
}

],

我的方法是

ss = s.split(",");
console.log(ss)
arr = [];
for (var i=1; i<=ss.length; i++) {
a=ss[i]
arr[i]['id']=i;
arr[i]['title']=a;
}
console.log(arr)

但是还是报错

阅读 5.8k
5 个回答
let s = "A,B,C";

let arr = s.split(',').map((title, id) => {
    id++;
    return { id, title };
});
> s="A,B,C"
> s.split(',').map((t,i)=>({id:i+1, title:t}))
[ { id: 1, title: 'A' },
  { id: 2, title: 'B' },
  { id: 3, title: 'C' } ]

你要循环出他的数据拼接一下字符串 就得到你的值了

先用String标准库的split()分割成数组,然后再遍历数组生成对象。

  1. for (var i=1; i<=ss.length; i++)循环条件不对,i的变化范围应该是从0ss.length - 1,不过这个不会导致报错;

  2. arr[i]['id']=i;arr[i]['title']=a; arr是一个空数组,所以arr[i]undefinedundefined['id']undefined['title']当然会报错;

修改如下:

ss = s.split(",");
console.log(ss)
arr = [];
for (var i=0; i<ss.length; i++) {
    a=ss[i]
    arr[i] = {
        id: i,
        title: a
    }
}
console.log(arr)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题