如何解决我如何基于相似的字段检查合并两个对象数组数据
我有两个包含低值和高值的对象数组,如何通过检查类似日期的相似文件将它们合并,并将它们组合为低值和高值并返回一个数组。
data = {
low: [
{ date: '2020-09-17',value: '50' },{ date: '2020-09-18',value: '52' },{ date: '2020-09-15',value: '45' },],high: [
{ date: '2020-09-17',value: '70' },value: '75' },value: '80' },};
// Expected Output new array with date sort:
[
{ date: '2020-09-18',value: '52/75' },{ date: '2020-09-17',value: '70/50' },value: '45/80' },];
解决方法
可以通过Array.map()
和Array.find()
如下实现:
data = {
low: [
{ date: '2020-09-17',value: '50' },{ date: '2020-09-18',value: '52' },{ date: '2020-09-15',value: '45' },],high: [
{ date: '2020-09-17',value: '70' },value: '75' },value: '80' },};
let result = data.low.map(oLow => {
oLow.value += '/' + data.high.find(oHigh => oHigh.date == oLow.date).value;
return oLow;
});
result.sort((a,b) => new Date(b.date) - new Date(a.date));
console.log(result);
,
您可以使用map
,find
和sort
const res = data.low.map(l => ({
date: l.date,value: `${l.value}/${data.high.find(h => h.date === l.date).value}`
})).sort((a,b) => b.date.localeCompare(a.date))
const data = {
low: [
{ date: '2020-09-17',high: [
{ date: '2020-09-17',};
const res = data.low.map(l => ({
date: l.date,b) => b.date.localeCompare(a.date))
console.log(res)
.as-console-wrapper { max-height: 100% !important; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。