W3Cschool编程实战:JavaScript

来源:互联网 发布:手机屏幕养兔子软件 编辑:程序博客网 时间:2024/05/18 20:31

记录一下在W3Cschool编程实战:JavaScript中遇到的难题。

1、JavaScript 使用对象进行查找值

对象和字典一样,可以用来存储键/值对。如果你的数据跟对象一样,你可以用对象来查找你想要的值,而不是使用switch或if/else语句。

当你知道你的输入数据在某个范围时,这种查找方式极为有效。

// Setupfunction phoneticLookup(val) {var result = "";// Only change code below this line var lookup ={    "alpha": "Adams","bravo": "Boston", "charlie": "Chicago","delta": "Denver","echo": "Easy","foxtrot": "Frank"};
result = lookup[val];//关键点// Only change code above this linereturn result;}// Change this value to testphoneticLookup("charlie");

2、JavaScript JSON集合操作
有一个JSON对象,代表着你的专辑集。每一张专辑由一个唯一的id标识,并具有多种属性。但并非所有的专辑都有完整的信息。

写一个函数,它有个三个参数,idpropvalue

如果 value !='' 而且prop != 'tracks'collectionCopy[id][prop]=value;

如果 value !='' 而且prop == 'tracks'collectionCopy[id][prop].push(value);

如果 value == '' ,delete collectionCopy[id][prop];

谨记:函数返回的永远是整个对象。

提示
使用中括号操作符来 访问对象的变量属性。
// Setupvar collection = {2548: {album: "Slippery When Wet",artist: "Bon Jovi",tracks: [ "Let It Rock", "You Give Love a Bad Name" ]},2468: {album: "1999",artist: "Prince",tracks: [ "1999", "Little Red Corvette" ]},1245: {artist: "Robert Palmer",tracks: [ ]},5439: {album: "ABBA Gold"}};// Keep a copy of the collection for testsvar collectionCopy = JSON.parse(JSON.stringify(collection));// Only change code below this linefunction update(id, prop, value) {if( value !='' && prop != 'tracks'){    collectionCopy[id][prop]=value;}if( value !='' && prop == 'tracks'){    collectionCopy[id][prop].push(value);}if(value == ''){    delete collectionCopy[id][prop];}return collection;}// Alter values below to test your codeupdate(5439, "artist", "ABBA");

3、JavaScript 使用循环语句查找通讯录

我们有一个联系人列表,里面存储着不同联系人的数组对象。

函数 lookUpProfile 有两个预定义参数:firstName值和prop属性 。

该函数应检查firstName是实际联系人的firstName,给定的属性(prop)是该联系人的属性。

如果它们都存在,函数返回prop属性对应的值。

如果firstName 值不存在,返回 "No such contact"

如果prop 属性不存在,返回 "No such property"

//Setupvar contacts = [{"firstName": "Akira","lastName": "Laine","number": "0543236543","likes": ["Pizza", "Coding", "Brownie Points"]},{"firstName": "Harry","lastName": "Potter","number": "0994372684","likes": ["Hogwarts", "Magic", "Hagrid"]},{"firstName": "Sherlock","lastName": "Holmes","number": "0487345643","likes": ["Intriguing Cases", "Violin"]},{"firstName": "Kristian","lastName": "Vos","number": "unknown","likes": ["Javascript", "Gaming", "Foxes"]}];function lookUpProfile(firstName, prop){// Only change code below this linefor(var i =0;i<contacts.length;i++){     if(contacts[i].firstName ==firstName){         if(contacts[i].hasOwnProperty(prop)){             return contacts[i][prop];         }     else{       return  "No such property";   }   }       } return   "No such contact";// Only change code above this line}// Change these values to test your functionlookUpProfile("Akira", "likes");

原创粉丝点击