JavaScript算法之记录集合
1、问题描述
你将创建一个帮助维护音乐专辑集的函数。 这个集合是一个包含多个相册的对象,这些相册也是对象。 每张专辑在集合中以唯一的 id 作为属性名来表示。 在每个专辑对象中,有各种描述专辑信息的属性。 并非所有专辑都有完整的信息。
(1)updateRecords 函数有 4 个参数,即以下参数:
records - 一个包含多个专辑的对象
id - 一个数字,代表 records 对象中特定的专辑
prop - 一个字符串,代表相册属性名称
value - 一个字符串,包含用来更新相册属性的信息
(2)使用下面的规则完成函数来修改传递给函数的对象。
你的函数必须始终返回整个 records 对象。
如果 value 是空字符串,从专辑里删除指定的 prop。
如果 prop 不是 tracks,并且 value 不是一个空字符串,将 value 赋给那个专辑的 prop。
如果 prop 是 tracks 并且 value 不是一个空字符串,你需要更新专辑的 tracks 数组。 首先,如果专辑没有 tracks 属性,赋予它一个空数组。 然后添加 value 作为专辑的 tracks 数组的最后一个项目。
注意: 将 recordCollection 对象的副本用于测试。 你不应该直接修改 recordCollection 对象。
2、代码修改
(1)需要修改的代码
(2)修改要求
- 执行 updateRecords(recordCollection, 5439, "artist", "ABBA") 后,artist 的值应该是字符串 ABBA。
- 等待中:执行 updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me") 后,tracks 的最后一个和唯一一个元素应该为字符串 Take a Chance on Me。
- 等待中:执行 updateRecords(recordCollection, 2548, "artist", "") 后,artist 不应被设置为任何值。
- 等待中:执行 updateRecords(recordCollection, 1245, "tracks", "Addicted to Love") 后,tracks 的最后一个元素应该为字符串 Addicted to Love。
- 等待中:执行 updateRecords(recordCollection, 2468, "tracks", "Free") 后,tracks 的第一个元素应该为字符串 1999。
- 等待中:执行 updateRecords(recordCollection, 2548, "tracks", "") 后,tracks 不应被设置为任何值。
等待中:执行 updateRecords(recordCollection, 1245, "albumTitle", "Riptide") 后,albumTitle 的值应该是字符串 Riptide。
3、修改完成的代码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。