我正在使用 Laravel(后端)和 Vue.js 制作 SPA。我有以下数组:
访问数组:
["BIU","CEO","Finance","HRD","Group"]
访问:
["BIU","Group"]
我想将 access
数组与 accessArray
数组进行比较,看看是否存在匹配项以更改记录(在 accessArray
中)并添加 true
值,否则添加 false
值。我在 Vue 方法中执行此操作。
...到目前为止我得到了这个:
var foo = ["BIU","CEO","Finance","HRD","Group"];
var bar = ["BIU","Group"];
$.each(bar, function (key, value) {
if ($.inArray(value, foo) != -1) {
var position = $.inArray(value, foo);
console.log(value + ' is in the array. In position ' + position);
foo[position] = {name: value, checked: true};
}
});
将其输出到控制台:
BIU is in the array. In position 0
Group is in the array. In position 4
Vue 中的这个:
[
{"name":"BIU","checked":true},
"CEO",
"Finance",
"HRD",
{"name":"Group","checked":true}
]
我想要实现的输出如下:
[
{"name":"BIU","checked":true},
{"name":"CEO","checked":false},
{"name":"Finance","checked":false},
{"name":"HRD","checked":false},
{"name":"Group","checked":true}
]
任何帮助将不胜感激,我已经看过很多类似的问题,但似乎找不到任何类似的问题。我还尝试在末尾添加 else 语句,但我(认为)我将其转换为对象,因此这似乎不起作用。
编辑:
foo 中的数据来自 Laravel 配置设置,因此有些动态
bar 中的数据是从 Laravel ORM 接收的 JSON(其 json 存储在文本字段中)
最佳答案
使用普通 JavaScript 的选项:
var foo = ["BIU","CEO","Finance","HRD","Group"];
var bar = ["BIU","Group"];
var result = foo.map(name => {
var checked = bar.indexOf(name) !== -1
return { name, checked }
})
console.log(result)
关于javascript - 迭代时设置对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500510/