gpt4 book ai didi

javascript - 在数组的对象中找到未定义并插入对象

转载 作者:行者123 更新时间:2023-12-04 01:02:03 25 4
gpt4 key购买 nike

这是我的数组。我在其中有多个对象,其中一些具有值 undefined

var array = [
{ 0: undefined, 1: 32, 2: "four" },
{ 0: undefined, 1: undefined, 2: "three" },
{ 0: undefined, 1: 24, 2: "two" },
{ 0: 14, 1: 24, 2: "five" },
{ 0: 10, 1: 21, 2: "one" },
]

我想检查数组对象是否有未定义的值,如果它们有任何未定义的值,则应该追加下一个对象。

示例 在第一个元素 {0: undefined, 1: 32, 2: "four"} 我有 0:undefined第二个 {0: undefined, 1: undefined, 2: "three"} 元素应该替换这个并且新对象应该形成 {0: {0: undefined, 1: undefined, 2 : “三”}, 1: 32, 2: “四”.

我知道 Array.forEach 可以做到这一点。如果它是数组,我可以通过使用 Array.splice()Array.lastIndexOf() 来实现。就像首先从右侧搜索或最后一个未定义的值并在其中附加下一个数组然后再做一次。

最终的数组必须是这样的:

{
0: {
0: {
0: 10,
1: 21,
2: "one"
},
1: {
0: {
0: 14,
1: 24,
2: "five"
},
1: 24,
2: "two"
},
2: "three"
},
1: 32,
2: "four"
}

最佳答案

您可以使用递归函数来实现,代码:

var array = [
{ 0: undefined, 1: 32, 2: "four" },
{ 0: undefined, 1: undefined, 2: "three" },
{ 0: undefined, 1: 24, 2: "two" },
{ 0: 14, 1: 24, 2: "five" },
{ 0: 10, 1: 21, 2: "one" }
]

function tree(array) {
let obj = array.shift();

for (let [key, value] of Object.entries(obj).reverse())
if (value === undefined)
obj[key] = tree(array);

return obj;
}

console.log(tree(array));

关于javascript - 在数组的对象中找到未定义并插入对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67979840/

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