W3Cschool编程实战之JavaScript部分题解

By | 9月 10, 2017

1.JavaScript 获取JSON数组值

JSON对象可以嵌套对象和数组。与访问嵌套对象一样,用中括号操作符同样可以访问嵌套数组。

问题:使用点操作符和中括号操作符来检索变量 myPlants 的第二棵树。

// Setup                                          #提示
var myPlants = [                                  #secondTree 应该等于 "pine"
{                                                 # 使用点和方括号访问 myPlants
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];

// Only change code below this line

var secondTree = myPlants[1].list[1]; // Change this line          解决方法

2.JavaScript JSON集合操作

问题:

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

写一个函数,它有个三个参数,idprop、 value

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

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

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

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

// Setup                                   
var 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",                    #JSON.parse从一个字符串中解析出json对象。
tracks: [ ]                                 #JSON.stringify用于从json对象中解析出字符串
},
5439: {
album: "ABBA Gold"
}
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function update(id, prop, value) {
if (value != '' && prop != 'tracks') {
    collectionCopy[id][prop] = value;
}else if(value != '' && prop == 'tracks'){
    collectionCopy[id][prop].push(value);  
}else if(value == ''){
    delete collectionCopy[id][prop];
}

return collection;
}

// Alter values below to test your code
update(5439, "artist", "ABBA");

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

问题:

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

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

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

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

如果firstName 值不存在,返回 “No such contact”。

如果prop 属性不存在,返回 “No such property”。

//Setup
var 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 line
for (var i in contacts)  
  {
      if (contacts[i].firstName == firstName && prop in contacts[i])  
     return contacts[i][prop];
      
  }  
  for ( i in contacts)  
  {  if (prop in contacts[i] ==false)  
     return  "No such property";    
  }  
  for ( i in contacts)  
  {  if (contacts[i].firstName != firstName)  
     return "No such contact";}  

}

// Change these values to test your function
lookUpProfile("Akira", "address");
lookUpProfile("Kristian", "lastName");
lookUpProfile("Sherlock", "likes");

4.JavaScript 使用random()在一个范围内生成随机数

2 thoughts on “W3Cschool编程实战之JavaScript部分题解

发表评论

您的电子邮箱地址不会被公开。