reactjs - 在 React Native SectionList 中合并相同的标题数据
问题描述
在 React Native SectionList 中,您有这样的标题和数据数据(针对我的示例进行了修改):
const DATA = [
{
title: 'Main dishes',
data: ['Pizza', 'Burger', 'Risotto'],
},
{
title: 'Sides',
data: ['French Fries', 'Onion Rings', 'Fried Shrimps'],
},
{
title: 'Drinks',
data: ['Water', 'Coke', 'Beer'],
},
{
title: 'Sides',
data: ['Cheese Cake', 'Ice Cream'],
},
];
如您所见,有 2Sides
个标题。有没有一种简单的方法来合并 2 个数组,data
所以它看起来像这样:
data: ['French Fries', 'Onion Rings', 'Fried Shrimps', 'Cheese Cake', 'Ice Cream']
由于我的数据是随机输入的,因此可以通过这种方式输入数据。这是我的代码....
` fbDb.ref('job') .orderByChild('driver_key') .equalTo(global.session.user.key) .once('value', 快照 => {
const result = [];
let dayData = { title: "", data: [] };
let data = snapshot.val();
for (const [key, value] of Object.entries(data)) {
const timestamp = data[key].status_rfc; //Get timestamp of completed time
const date = moment(timestamp).format("YYYY MM"); //Change to 2020 02 for date sorting
if (dayData.title === date) { //If date exists add it to that section header
dayData.data.push(data[key]);
} else { //Otherwise add as new entry
dayData = { title: date, data: [data[key]] };
result.push(dayData);
}
}
this._isMounted && this.setState({
myData: result,
loading: false,
});
});`
如您所见,它仅在数据已按日期排序时才有效。有没有一种简单的方法来对常见的标题进行分组?
谢谢
解决方案
你要求这个:
如您所见,有 2 个 Sides 标题。有没有一种简单的方法来合并 2 个数据数组,所以它看起来像这样:
数据:['French Fries'、'Onion Rings'、'Fried Shrimps'、'Cheese Cake'、'Ice Cream']
只需应用 javascript。
const DATA = [
{
title: 'Main dishes',
data: ['Pizza', 'Burger', 'Risotto'],
},
{
title: 'Sides',
data: ['French Fries', 'Onion Rings', 'Fried Shrimps'],
},
{
title: 'Drinks',
data: ['Water', 'Coke', 'Beer'],
},
{
title: 'Sides',
data: ['Cheese Cake', 'Ice Cream'],
},
];
var filter_data = {};
DATA.forEach(e => {
if(filter_data[e.title] != undefined){
filter_data[e.title].data = [...filter_data[e.title].data, ...e.data]
}else{
filter_data[e.title] = e;
}
});
var _data = Object.values(filter_data);
console.log(_data);
output:
[{"title":"Main dishes","data":["Pizza","Burger","Risotto"]},
{"title":"Sides","data":["French Fries","Onion Rings","Fried Shrimps","Cheese
Cake","Ice Cream"]},{"title":"Drinks","data":["Water","Coke","Beer"]}]
推荐阅读
- python - 按两列分组数据并使用 pandas 进行计数
- java - 从android中的构造函数获取后java.util.Date值发生变化
- json - 从 json 文件批量 curl -d
- c++ - 为什么编译器认为这个构造函数重载决议是模棱两可的?
- google-app-engine - 批量使用objectify?
- assembly - 将排序程序从 C 转换为汇编
- sas - SAS中有没有办法使用proc sql打印标签中变量的值?
- string - 如何将文档转换为 .str 和 .ttml 文件
- javascript - 以不同方式组织代码后,我的代码无法正常工作
- java - ORM 是如何实现类型安全的查询的?