gpt4 book ai didi

javascript - 如何通过循环更改 this.something 的值

转载 作者:搜寻专家 更新时间:2023-11-01 00:14:55 24 4
gpt4 key购买 nike

    if (this.name === '') {
this.name= 'None';
}
if (this.obs === '') {
this.obs = 'None';
}

伙计们,我该如何干掉这段代码?我正在尝试这样:

var v = [this.name, this.obs];

for(var i = 0; i < v.length; i++) {
if(v[i] === '') {
v[i] = 'None';
}
};

但根本不起作用......

最佳答案

我想你要找的是一个函数。像这样

function setToNoneIfEmpty (stringInput) {
if (stringInput === '') {
stringInput = 'none';
}
return stringInput;
}

为了使这个更清晰,你应该使用三元语句并且只返回值而不是重新分配参数,所以函数看起来像这样

function setToNoneIfEmpty (stringInput) {
return stringinput === '' ? 'None' : stringinput;
}

有了这个,您应该能够传入 this.namethis.obs 并且该函数将相应地更改它们。你会这样称呼他们

this.name = setToNoneIfEmpty(this.name);
this.obs = setToNoneIfEmpty(this.obs);

您的原始代码不起作用,因为您创建了一个多维数组,然后没有以多维数组的形式访问这些值。

我建议的方式会工作得更好并且更容易阅读


我不是 Javascript 的专业人士(从长远来看),但有人向我提到它可以以不同的方式完成,您实际上可以访问对象并传入要检查的对象属性。

function setToNoneIfEmpty(obj, name) {
if (obj[name] === '') {
obj[name] = 'None';
}
}

因此,我们没有传入一个变量来返回一个字符串,而是传入了一个对象和属性名称,这使得代码更加枯燥,正如您在使用它时看到的那样

setToNoneIfEmpty(this, 'name')
setToNoneIfEmpty(this, 'obs')

关于javascript - 如何通过循环更改 this.something 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28434155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com