Javascript-如何在对象中大写key.value?
如何大写每个联系人的名字的第一个字母Javascript-如何在对象中大写key.value?,javascript,oop,Javascript,Oop,如何大写每个联系人的名字的第一个字母 String.prototype.capitalize = function (string) { return string.charAt(0).toUpperCase() + string.slice(1);} var contactList = {}; contactList.bobSmith = { firstName: "bob", lastName: "smith", location: "new york" }; contac
String.prototype.capitalize = function (string) { return string.charAt(0).toUpperCase() + string.slice(1);}
var contactList = {};
contactList.bobSmith = {
firstName: "bob",
lastName: "smith",
location: "new york"
};
contactList.johnDoe = {
firstName: "john",
lastName: "doe",
location: "san francisco"
};
var contact2 = contactList["johnDoe"].firstName;
contact1.capitalize();
contact2.capitalize();
console.log(contact1 + " " + contact2);
我收到一条错误消息,上面写着“UncaughtTypeError:无法读取未定义的属性'charAt'。
函数(){返回this.charAt(0).toUpperCase()+this.slice(1);}
函数(){返回this.charAt(0).toUpperCase()+this.slice(1);}
您的String.prototype.capitalize
函数需要一个参数String
,调用该参数时您不会将其传递给它。我建议避免向字符串.prototype
添加方法,而只使用独立函数
function capitalise(str) {
return str.slice(0,1).toUpperCase() + str.slice(1);
}
contact2 = capitalise(contact2);
//=> "John"
…或者,如果您希望将contactList对象中的值大写,则只需
contactList.johnDoe.firstName = capitalise(contact2);
希望有帮助。:) 您的
String.prototype.capitalize
函数需要一个参数String
,调用时您不会将该参数传递给它。我建议避免向字符串.prototype
添加方法,而只使用独立函数
function capitalise(str) {
return str.slice(0,1).toUpperCase() + str.slice(1);
}
contact2 = capitalise(contact2);
//=> "John"
…或者,如果您希望将contactList对象中的值大写,则只需
contactList.johnDoe.firstName = capitalise(contact2);
希望有帮助。:) 我不会养成在原型中弹出方法的习惯。这是不受欢迎的,因为未来的JavaScript版本可能会出现,并在原型中使用相同名称的方法,你会被搞砸 我不是这样写的,但是你可以把大写函数放在contactList对象上,你就基本上实现了与原型相同的功能
var contactList = {};
contactList.names =[
{
firstName: "bob",
lastName: "smith",
location: "new york"
},
{
firstName: "john",
lastName: "doe",
location: "san francisco"
}];
function capitalizeName(name) {
var strCap = name[0].toUpperCase();
var tailTxt = name.substr(1, name.length);
fullTxt = strCap + tailTxt;
return fullTxt;
)
$.each( contactList.names, function(i){
capitalizeName(contactList.names[i].firstName);
});
我不会养成在原型中弹出方法的习惯。这是不受欢迎的,因为未来的JavaScript版本可能会出现,并在原型中使用相同名称的方法,你会被搞砸 我不是这样写的,但是你可以把大写函数放在contactList对象上,你就基本上实现了与原型相同的功能
var contactList = {};
contactList.names =[
{
firstName: "bob",
lastName: "smith",
location: "new york"
},
{
firstName: "john",
lastName: "doe",
location: "san francisco"
}];
function capitalizeName(name) {
var strCap = name[0].toUpperCase();
var tailTxt = name.substr(1, name.length);
fullTxt = strCap + tailTxt;
return fullTxt;
)
$.each( contactList.names, function(i){
capitalizeName(contactList.names[i].firstName);
});
您会得到错误,因为函数希望传递一个参数(
string
),但在contact1.capitalize()
和contact2.capitalize()
中没有传递任何内容。因此,string
是未定义的
。您会得到错误,因为函数期望传递一个参数(string
),但您不会在contact1.capitalize()
和contact2.capitalize()
中传递任何内容。因此字符串
是未定义的
。