gpt4 book ai didi

javascript - 返回数组和子节点

转载 作者:行者123 更新时间:2023-12-02 18:08:09 24 4
gpt4 key购买 nike

我有以下代码:

var actionsAllowed = $(packet).find('actionsAllowed').get();

var actionArray = $(actionsAllowed).each(function () {
var actionNodes = this.childNodes;
var actionNumber = actionNodes.length;
var array = new Array(actionNumber)

for (var i = 0; i < actionNodes.length; i++) {
var action = actionNodes[i].nodeName
array[i] = action
console.log(action);
}
return array;
});

这会在数据包 (XML) 中搜索 "actionsAllowed" 并将其返回为 "[actionsAllowed]"

然后,我尝试使用数组中列出的每个操作创建一个数组。

"this" 变为 "actionsAllowed",无需 "[ ]" 并允许它返回表单中的子节点“节点列表[ Action 一, Action 二, Action 三]”。然后,我获取 NodeList 的长度并创建该长度的数组。

然后,我迭代 NodeList 并将每个节点添加到数组中。

最后,它返回数组为“[ActionOne,ActionTwo,ActionThree]”,这太棒了!

但是 - 这就是问题所在:

变量“actionArray”变为“Object[actionsAllowed]”,而不是数组。

知道这是为什么吗?我有一个理论,但我无法修复它 =(

谢谢!

最佳答案

$(actionsAllowed).each 返回迭代的第一个元素。你似乎想要这个:

var actionArray = [];
$(actionsAllowed).each(function () {
var actionNodes = this.childNodes;
var actionNumber = actionNodes.length;
var array = new Array(actionNumber)

for (var i = 0; i < actionNodes.length; i++) {
var action = actionNodes[i].nodeName
array[i] = action
console.log(action);
}
actionArray.push(array);
});

编辑:如果您想要的是一个大数组而不是数组的数组,请将其更改为

var actionArray = [];
$(actionsAllowed).each(function () {
var actionNodes = this.childNodes;
for (var i = 0; i < actionNodes.length; i++) {
var action = actionNodes[i].nodeName
actionArray.push(action);
console.log(action);
}
});

关于javascript - 返回数组和子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933748/

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