gpt4 book ai didi

Javascript 简写 if + 简写赋值

转载 作者:行者123 更新时间:2023-12-02 14:49:30 27 4
gpt4 key购买 nike

我想知道是否有办法将简写 if/else 与简写 += 合并

类似这样的事情:

var value;
$.each(data.events, function(index, element) {
var otherValue = element.value;
value = value ? value + otherValue : '';
}

需要预防的事情

value += otherValue

当值未定义时,将“undefined”添加到开头。

长版本是:

var value;
$.each(data.events, function(index, element) {
var otherValue = element.value;
if(value){
value = value + otherValue;
}

}

我希望这个问题不会(太)令人困惑:)

最佳答案

编辑:

天哪,我发布的内容几乎与您在底部示例中的内容完全相反。我本想在这里删除我的问题,但它已被接受=/

您可以使用 AND && 运算符:

console.log('foo' && 'hello'); // prints hello
console.log(null && 'hello'); // prints null
console.log(undefined && null); // prints undefined
console.log('foo' && null && 'bar'); // prints null


var value;
$.each(data.events, function(index, element) {
// if value is undefined, null, or empty then it stays the same.
// otherwise add append the element value
value = (value && value + element.value);
}

虽然这并不比原来的更具可读性

var value;
$.each(data.events, function(index, element) {
// if value is undefined, null, or empty then it stays the same.
// otherwise add append the element value
if(value) value += otherValue;
}

我在下面留下了原来的答案,我已经阅读了你的问题并看到了你的第一个代码片段并回答了这个问题。然而你的第二个代码片段做了一些不同的事情,我不太确定现在的答案是什么......

<小时/>

您可以使用 || 运算符,它将返回表达式为 true 时看到的第一个未定义值(例如:!!val === true)或最后一个运算符序列中的值(假设您使用所有 OR 语句 ||)

console.log(undefined || 'hello'); // prints hello
console.log('' || 'hello'); // prints hello
console.log(undefined || null); // prints null
console.log(undefined || '' || null); // prints null

因此,在您的情况下,我们可以将您的工作但较长的 JavaScript 代码简化为以下内容

var value;
$.each(data.events, function(index, element) {
value = (value && value+element.value);
}
<小时/>

关于Javascript 简写 if + 简写赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298675/

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