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标识,并具有多种属性。但并非所有的专辑都有完整的信息。
写一个函数,它有个三个参数,id
、prop
、 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()在一个范围内生成随机数
踩一踩