js for循环根据条件数据格式改造.
数据结构↓
let data = [{ name: '苹果', type: 0, base: '123,111'},{ name: '香蕉', type: 0, base: '111' },
{ name: '梨子', type: 1, base: '112' }]
需要效果/理想效果 ↓
let newData = '苹果': ['123', '111'] ,'香蕉': ['111']
可能newData得格式不太对,但这图就是我需要的数据结构的正确格式了
条件为当type等于0的时候,base里面以逗号为间隔生成一个数组,name为这个数组的key值
我该怎么操作才能达到效果呢..
感谢各位大神大哥的指导,先感谢你们的回答,小弟感激不尽,还请轻喷!
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);
不知道你 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"]
// }
// => [{"苹果":["123","111"],"香蕉":["111"],"梨子":["112"]}const result = data.reduce(function (gather, item) {
return gather[item.name] = item.base.split(','), gather;
}, {})
回答
以上是 js for循环根据条件数据格式改造. 的全部内容, 来源链接: utcz.com/a/111413.html