js for循环根据条件数据格式改造.

发布于 2022-09-12 22:18:43 字数 568 浏览 9 评论 0

数据结构↓

let data = [{ name: '苹果', type: 0, base: '123,111'},
            { name: '香蕉', type: 0, base: '111' },
            { name: '梨子', type: 1, base: '112' }]

需要效果/理想效果 ↓

let newData =  '苹果': ['123', '111'] ,
               '香蕉': ['111'] 

image
可能newData得格式不太对,但这图就是我需要的数据结构的正确格式了

条件为当type等于0的时候,base里面以逗号为间隔生成一个数组,name为这个数组的key值

我该怎么操作才能达到效果呢..

感谢各位大神大哥的指导,先感谢你们的回答,小弟感激不尽,还请轻喷!

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

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

发布评论

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

评论(3

爱你不解释 2022-09-19 22:18:43

不知道你 type === 1 时想怎么处理,根据你现有的描述,应该是想达到如下效果把:

const result = [
  { name: '苹果', type: 0, base: '123,111' },
  { name: '香蕉', type: 0, base: '111' },
  { name: '梨子', type: 1, base: '112' }
].reduce((obj, item) => {
  if (item.type === 0 && typeof item.base === 'string') {
    obj[item.name] = item.base.split(',')
  }

  return obj
}, {})

console.log(result)
// {
//   "苹果": ["123", "111"],
//   "香蕉": ["111"]
// }
苏璃陌 2022-09-19 22:18:43
let data = [
    { name: '苹果', type: 0, base: '123,111'},
    { name: '香蕉', type: 0, base: '111' },
    { name: '梨子', type: 1, base: '112' }
]
let newData = {};
data.forEach((item) => {
    newData[item.name] = item.base.split(',')
})
console.log(newData);
清引 2022-09-19 22:18:43
// => [{"苹果":["123","111"],"香蕉":["111"],"梨子":["112"]}
const result = data.reduce(function (gather, item) {  
  return gather[item.name] = item.base.split(','), gather;
}, {})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文