freeCodeCamp-Basic JavaScript-记录集合

时间: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.    
上一篇:我现在知道使用ROS话题消息的功能包的命名空间是在哪里定义的了


下一篇:I-deas TMG 基础培训教程 – 小例题 (6)-续2