修剪名称“undefined”的前导和尾随空格。
trimName接受一个人作为参数。人永远是一个对象。如果未定义名称,则返回undefined。否则,返回修剪后的名称。
var person = {};
var trimmedName;
person.name;
function trimName(person) {
// If you do not set this variable to a value, it will be
// undefined.
// Do a check here to see if a person's name is defined.
if (person.name = 'undefined') {
return 'undefined';
}
else {
trimmedName = person.name.trim();
return trimmedName;
}
}
trimName(' sam ');
答案 0 :(得分:3)
我没有在那里看到问题......但我发现代码存在问题:
=
,您应该使用比较运算符==
。'undefined'
进行比较不是检查属性是否未定义的方法。trim
方法仅存在于IE的最新版本(9)中。代码:
function trimName(person) {
var trimmed;
if (typeof person.name == 'undefined') {
trimmed = 'undefined';
} else {
trimmed = person.name.replace(/(^\s+|\s+$)/g, '');
}
return trimmed;
}
var trimmedName = trimName({ name: ' sam ' });
答案 1 :(得分:2)
你应该做
var personTest = {name: ' sam'};
function trimName(person) {
// If you do not set this variable to a value, it will be
// undefined.
// Do a check here to see if a person's name is defined.
if (typeof person.name === 'undefined') {
return 'undefined';
}
else {
var trimmedName = person.name.trim();
return trimmedName;
}
}
alert(trimName(' sam '));
alert(trimName(personTest));
pastebin http://jsbin.com/oqovog/edit#source
答案 2 :(得分:0)
function trimName(person) {
// Check if the name of the person was defined
// If not, return undefined
if (person.name == 'undefined') {
return 'undefined';
}
else {
// Otherwise trim the name and return it.
return person.name.replace(/^\s+|\s+$/g, '');
}
}
// Create a person, set his name to " sam " with the spaces.
var person = {};
person.name = " sam ";
// Pass sam (the person object) to your function
// Then alert() the result.
alert(trimName(person));
在这里查看代码并阅读评论。我们创建一个person对象,用前导和尾随空格设置他的名字。我们将它传递给我们测试它是否定义的函数。如果是,我们返回修剪过的名称。
关注已修改。
var person = {}; //creates the object "person"
person.name = prompt('Please enter a name'); //defines name as a property
function trimName(person) { //and gives it a value
// If the property "name" is undefined
// return undefined
if (name === undefined) { //returns the code state "undefined"
return undefined; // if name is undefined
} else if (person.name === '') { //returns a prompt if no name is entered
return 'Please enter a name';
} else {
// Trim the "name" property, ensure it is a string
return (person.name + '').trim(); //trims leading/trailing spaces
}
}
trimName(person); //defines object person as a variable of function trimName