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']

js for循环根据条件数据格式改造.
可能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

回到顶部