js把字符串变成数组

发布于 2022-09-06 04:01:21 字数 332 浏览 11 评论 0

把 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)

但是还是报错

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

苍白女子 2022-09-13 04:01:21
let s = "A,B,C";

let arr = s.split(',').map((title, id) => {
    id++;
    return { id, title };
});
天荒地未老 2022-09-13 04:01:21
> 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' } ]
善良天后 2022-09-13 04:01:21

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

述情 2022-09-13 04:01:21

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

花开浅夏 2022-09-13 04:01:21
  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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文