将新值传递给对象
Passing new value into an object
我似乎无法获得语法正确,以添加一个新的"艺术家"字段值为"ABBA"到专辑id 5439,我不断得到未定义的"艺术家"的错误,这是有意义的,但无论我以哪种方式插入,我似乎都错了。
代码的目的是检查值是不是轨道和空,然后添加新的属性变量传入,从值变量的值。我认为JSON可以添加obj。Prop = "value";但这似乎没有工作
// 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",
"tracks": [ ]
},
"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 updateRecords(id, prop, value) {
if(prop !== "tracks" && value !== null){
collection.id[prop] = prop[value];
}
return collection;
}
// Alter values below to test your code
updateRecords(5439, "artist", "ABBA");
你得到的错误是:
VM5865:33 Uncaught TypeError: Cannot set property
'artist'
ofundefined
表示collection.id
为undefined
。这是有意义的,因为collection
没有id
属性。
您还设置了错误的value
。
替换:
collection.id[prop] = prop[value];
:
collection[id][prop] = value;
collection[id]
是您需要的集合。[prop]
用于瞄准集合的"artist"
属性。value
是要存储为"artist"
的值
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", "tracks": [] }, "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 updateRecords(id, prop, value) {
if (prop !== "tracks" && value !== null) {
collection[id][prop] = value;
}
return collection;
}
// Alter values below to test your code
var result = updateRecords(5439, "artist", "ABBA");
console.log(result['5439'])
collection.id[prop] = prop[value];
Collection没有名为id
的属性。id直接是集合对象的属性。
collection[id][prop] = prop[value];
相关文章:
- JS数组-检查对象值是否重复
- Ember.js(2.5.0)如何设置嵌套对象值
- 使用javascript比较对象中的对象值和数组长度
- 如何将输入范围的值传递给JS中的变量
- 如何在不知道关键字的情况下访问javascript对象值
- 如何将值传递给wicket中的javascript函数
- 如何从jquery自动完成中获取对象值
- 将值传递给jquery创建的输入字段
- 从数组NodeJs中获取对象值
- 在for循环中未获取JQuery/JavaScript对象值
- 需要将select标记选项值传递给ajax函数
- 使用Ajax将PHP值传递给javascript
- 如何通过json将products对象中的对象值从php传递给smarty
- 将javascript值传递给PHP
- javascript对象值的动态深度访问
- 将制表符分隔文件中的值传递给Google Maps对象
- 将AngularJS对象值从ng repeat传递给AngularJS函数
- 如何使用reactjs在FORM Submit中做POST,并将对象值传递给REST服务
- 如何将javascript对象值传递给其“”;“孩子”;对象
- 如何在上传程序(ajax)中更改对象值