gpt4 book ai didi

javascript - 将两个相交的数组合并成一个 HashMap,一个键和多个值

转载 作者:行者123 更新时间:2023-11-28 20:14:38 25 4
gpt4 key购买 nike

我正在尝试制作一个基本日历,以帮助使用 Angular.js 和 Chrome 扩展程序自动化工作中的时间表,但目前我陷入了这部分。

下面您可以看到两个数组:pastTwoWeeks,它是从今天起 14 天的日期列表,以及从 API 检索的时间表条目 - 这些实际上是具有许多属性的对象,但现在我只使用一个简单的日期。

这是一个jsfiddle,我走对了吗?谢谢 http://jsfiddle.net/v599n/

var pastTwoWeeks = ['15/10/2013', '14/10/2013', '13/10/2013', 
'12/10/2013', '11/10/2013', '10/10/2013',
'09/10/2013', '08/10/2013', '07/10/2013',
'06/10/2013', '05/10/2013', '04/10/2013',
'03/10/2013', '02/10/2013'];

var entries = ['11/10/2013', '11/10/2013', '11/10/2013',
'11/10/2013', '10/10/2013', '10/10/2013', '10/10/2013',
'09/10/2013', '09/10/2013', '09/10/2013', '08/10/2013',
'08/10/2013', '07/10/2013', '07/10/2013', '04/10/2013',
'04/10/2013', '03/10/2013', '03/10/2013', '02/10/2013',
'02/10/2013', '02/10/2013', '02/10/2013', '01/10/2013',
'01/10/2013', '01/10/2013'];

var calander = {};

for(var j=0; j< pastTwoWeeks.length; j++) {
var key = pastTwoWeeks[j];
if (key in calander == false) {
calander[key] = {};
}

for(var i = 0; i< entries.length; i++) {
var entry = entries[i];
if(entry === key){
calander[key][entry];
console.log(key + " " + entry);
}
}
}

我想要实现的目标:

  • 2013 年 10 月 15 日
  • 2013 年 10 月 14 日
  • 2013 年 10 月 13 日
  • 2013 年 10 月 12 日
  • 2013 年 10 月 11 日(4 条)
    • 2013 年 10 月 11 日
    • 2013 年 10 月 11 日
    • 2013 年 10 月 11 日
    • 2013 年 10 月 11 日

等等...

最佳答案

Here's a jsfiddle, am I on the right track?

不完全是。

calander[key] = {};

我认为您更想要这里的条目数组,而不是对象。

calander[key][entry];

这不会做任何事情。如果您尝试创建属性,则需要对其进行分配。此外,由于key 的所有entry 都是相同的,因此您只能覆盖同一个属性。更好的 .push() 到数组。

for(var j=0; j< pastTwoWeeks.length; j++) {   
for(var i = 0; i< entries.length; i++) {
if(entry === key)

这效率相当低。您可以通过依次执行循环来做得更好,只需检查您的 entry 是否作为 calender 的键存在,该日历之前已填充 pastTwoWeeks.

var calendar = {};
for (var i=0; i<pastTwoWeeks.length; i++) {
var key = pastTwoWeeks[i];
calendar[key] = [];
}
for (var i=0; i<entries.length; i++) {
var entry = entries[i],
key = entry; // this might change for more complex objects
if (key in calendar) {
calendar[key].push(entry);
console.log(entry+" added to calendar at " + key);
}
}

关于javascript - 将两个相交的数组合并成一个 HashMap,一个键和多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com