gpt4 book ai didi

javascript - jquery:将分隔的数组放在一个数组中而不连接它们

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:12:56 24 4
gpt4 key购买 nike

我有一个输入可以如下:

"a"

  ["a","b"]

  [["a","b"],["c"]] 

目标是将它们转换为第三种模式。我的意思是我需要一个大数组,包含多个数组。作为伪代码,我尝试如下:

  input=[].concat(input);
for (var t in input)
{
t=[].concat(input);
}

但它不适用于第二种模式,因为我想要 [["a","b"]]

"a"=>[["a"]]

  ["a","b"]=>[["a","b"]]

  [["a","b"],["c"]] => [["a","b"],["c"]] 

最佳答案

您可以检查给定值是否为数组以及内部项是否也是数组,如果不是,则将值包装在数组中。

function convert(v) {
if (!Array.isArray(v)) {
v = [v];
}
if (!Array.isArray(v[0])) {
v = [v];
}
return v;
}

console.log(convert("a")); // [["a"]]
console.log(convert(["a", "b"])); // [["a", "b"]]
console.log(convert([["a", "b"], ["c"]])); // [["a", "b"], ["c"]]
.as-console-wrapper { max-height: 100% !important; top: 0; }

如果你需要测试内部数组的每一项,那么你可以先检查所有项目。

function convert(v) {
if (!Array.isArray(v)) {
v = [v];
}
if (v.some(function (a) { return !Array.isArray(a); })) {
v = [v];
}
return v;
}

console.log(convert("a")); // [["a"]]
console.log(convert(["a", "b"])); // [["a", "b"]]
console.log(convert([["a", "b"], "c"])); // [[["a", "b"], "c"]]
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - jquery:将分隔的数组放在一个数组中而不连接它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331218/

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