gpt4 book ai didi

javascript - 无法从 jQuery 的 $.each 返回结果数组

转载 作者:行者123 更新时间:2023-11-28 00:02:00 25 4
gpt4 key购买 nike

我正在处理用户 Angular 色权限,为此我创建了一个如下所示的表单:

为每个复选框生成的 HTML 为

<div class="checker" id="uniform-department_create">
<span>
<input type="checkbox"
class="form-control department"
id="department_create"
name="department_create"
value="create">
</span>
</div>

现在onSubmit 我将调用一个函数来提取用户的权限。它看起来像这样:

var designationForm = {

// All permissions must be added to this Array
// to manipulate checkboxes
permissions: Array('department','customer','designation'),

...

get_permissions: function() {
var allowed = Array();
$.each(designationForm.permissions, function(index, permission) {
allowed[permission] = Array();
$.each($("."+permission),function(input, value) {
if ($("#uniform-"+$(value).attr('id') + " span").hasClass('checked')) {
allowed[permission] += "{"+$(value).attr('value')+":"+"true},";
} else {
allowed[permission] += "{"+$(value).attr('value')+":"+"false},";
}
});
return allowed[permission];
});
// console.log(allowed);
return allowed;
},
...
}

它所做的基本上是检查权限数组并迭代所有权限,如果它发现包含“Checked”类的复选框的范围,则会将其添加到允许的数组中。

如果我控制台结果,那么我可以看到正确的返回结果,但无法返回结果数组。

最佳答案

if I console the result then I can see correct return but I'm unable to return the resultant array.

its returning empty array

复制代码并添加一些额外的 div/span 到 jsfiddle: jsfiddle.net/fk2x8w9x/1 并查看控制台输出给出:

[department: "{create:false},{delete:false},", customer: "{create:true},", designation: Array[0]]

即,如上所述的空数组,但将值设置为“数组”的属性。

这是因为:

  • JavaScript 中的“数组”就像任何其他对象一样,可以拥有自己的属性等。
  • 您可以设置 obj.val = 等属性,也可以通过索引器设置属性,例如 obj["val"] =

这就是这里发生的情况 - 添加属性而不是数组“items”。

如果你换行:

var allowed = Array();
allowed[permission] = Array();

var allowed = {};
allowed[permission] = {};

那么它可能更有意义。

关于javascript - 无法从 jQuery 的 $.each 返回结果数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31712022/

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