gpt4 book ai didi

javascript - 如果 string == "",则返回空数组

转载 作者:行者123 更新时间:2023-12-03 06:54:32 24 4
gpt4 key购买 nike

我正在重写我的旧表排序库。在库中,我有一个从表中获取一些属性的方法:

<table data-sort-cols="" data-sort-orders="">

getSortInfo : function(element) {
switch (element.tagName) {
case "TABLE":
function getSortAttr(element, attr) {
var info = element.getAttribute(attr);
if (info != "") {
info = info.split(",").map(function(val) { return parseInt(val,10) });
} else {
info = [];
}
return info;
};
return {
columns : getSortAttr(element, "data-sort-cols"),
orders : getSortAttr(element, "data-sort-orders"),
}

我想缩短 getSortAttr 函数。函数返回指定的值(例如“1,3,2”-> [1,3,2])。如果没有为该属性分配值,则返回一个空数组。我想去掉 if 语句。

有没有办法修改这一行,并使其在字符串为空""时返回一个空数组?

info = info.split(",").map(function(val) { return parseInt(val,10) });

我已经尝试过

// returns [NaN]
"".split(",").map(function(val) {
return parseInt(val, 10);
})

// returns [undefined]
"".split(",").map(function(val) {
var num = parseInt(val, 10);
if (!isNaN(num) && isFinite(num)) {
return num;
}
})

但没有成功。

最佳答案

下面的函数将检查if info == "",如果info == "",它将返回一个空数组,如果不是,它将拆分info字符串并映射它。这称为简写 if 语句。

info = (info == "") ? [] : info.split(",").map(function(val) { return parseInt(val,10) });

您还可以在简写条件中添加更多条件,例如:

(info == "" || info != undefined || info != null)

如果上面的 info == "" 不起作用,这可能意味着 info 未定义。为了解决这个问题,我们可以使用以下语句:

(typeof(info) != undefined)

关于javascript - 如果 string == "",则返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335846/

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