我想修改一个array
ofobject
以sub-array
根据文件扩展名将其“文件”分为两类。
img[]
(以 .jpg 结尾的文件列表)pdf[]
(以 .pdf 结尾的文件列表)var test = [
{
name: 'ter3',
files: ['dsf.jpg', 'test.jpg', 'lolwa.pdf']
}, {
name: 'test2',
files: ['te.jpg', 'fgfd.jpg', 'lolwa.pdf']
}
]
test.filter(item => {
item.files.filter(file => {
if(file.indexOf('jpg') !== -1) {
console.log(file)
}
})
})
console.log(test)
我想将上面的数组修改为这个。
var test = [
{
name: 'ter3',
files: ['dsf.jpg', 'test.pdf', 'lolwa.jpg'],
img: ['dsf.jpg', 'lolwa.jpg'],
pdf: ['test.pdf']
}, {
name: 'test2',
files: ['te.jpg', 'fgfd.jpg', 're.pdf'],
img: ['te.jpg', 'fgfd.jpg'],
pdf: ['re.pdf']
}
]
array.map()
在以下代码段中使用like试试:
var test = [
{
name: 'ter3',
files: ['dsf.jpg', 'test.jpg', 'lolwa.pdf']
}, {
name: 'test2',
files: ['te.jpg', 'fgfd.jpg', 'lolwa.pdf']
}
]
test.map(item => { //Map the array
item.img = [] //Initialize the img and pdf arrays
item.pdf = []
item.files.forEach(file => { //Add to the img and pdf array accordingly
if(file.endsWith('.jpg')) {
item.img.push(file)
} else if (file.endsWith('.pdf')) {
item.pdf.push(file)
}
})
return item
})
console.log(test)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句