时间:2021年6月11日
地点:重庆市重庆大学A区图书馆二楼
上了一下午的课程,形策课后,迅速冲出研究生院楼,跑到外面吃了土豆肉丝,在宿舍待了一会,跑到教学楼来蹭空调;然而四六级周末设考场,所以只好来带图书馆敲代码了hhh。
freeCodeCamp, 记录集合,上次耗费了一个小时,迟迟想不出来。这次在图书馆一次AC,很是激动呢,大概是旁边的xjj的鼓舞吧哈哈哈,大家可以当作练题,亲自试一试。
题目:
记录集合 通过给定一个对象,用来表示部分音乐专辑收藏。 每张专辑都有几个属性和一个唯一的 id 号作为键值。 并非所有专辑都有完整的信息。以 updateRecords
函数开始,这个函数需要一个对象 records
,包含一个音乐专辑集合,一个 id
,一个 prop
(如 artist
或 tracks
),和一个 value
。 使用下面的规则完成函数来修改传递给函数的对象。
- 函数必须始终返回整个音乐专辑集合对象。
- 如果
prop
不是tracks
并且value
不是一个空字符串, 将相册的prop
更新或设置为value
。 - 如果
prop
是tracks
但专辑没有tracks
属性,则应创建空数组并为其添加value
。 - 如果
prop
是tracks
并且value
不是一个空字符串,将value
添加到相册现有tracks
数组的末尾。 - 如果
value
是空字符串,从专辑里删除指定的prop
。
注意: 用 recordCollection
对象做为测试参数对象。
初始代码
// 设置 var recordCollection = { 2548: { albumTitle: 'Slippery When Wet', artist: 'Bon Jovi', tracks: ['Let It Rock', 'You Give Love a Bad Name'] }, 2468: { albumTitle: '1999', artist: 'Prince', tracks: ['1999', 'Little Red Corvette'] }, 1245: { artist: 'Robert Palmer', tracks: [] }, 5439: { albumTitle: 'ABBA Gold' } };// 只修改这一行下面的代码 function updateRecords(records, id, prop, value) { return records; }
updateRecords(recordCollection, 5439, 'artist', 'ABBA'); 题解代码 // 设置 var recordCollection = { 2548: { albumTitle: 'Slippery When Wet', artist: 'Bon Jovi', tracks: ['Let It Rock', 'You Give Love a Bad Name'] }, 2468: { albumTitle: '1999', artist: 'Prince', tracks: ['1999', 'Little Red Corvette'] }, 1245: { artist: 'Robert Palmer', tracks: [] }, 5439: { albumTitle: 'ABBA Gold' } };
// 只修改这一行下面的代码 function updateRecords(records, id, prop, value) { if(value === "") { if(records[id].hasOwnProperty(prop)) { delete records[id][prop]; } } else { if(prop !== "tracks") { records[id][prop] = value; } else { if(records[id].hasOwnProperty('tracks')) { records[id][prop].push(value); } else { records[id][prop] = []; records[id][prop].push(value); } } } return records; }
updateRecords(recordCollection, 5439, 'artist', 'ABBA'); 怎么样,花了多长时间呢?是不是有、、绕?理清逻辑,再起征程吧。 When WE live in this world, WE have to grasp something real, fortunately, I encounter with coding.