javascript - 迭代时设置对象的属性

标签 javascript jquery vue.js

我正在使用 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/

相关文章:

javascript - 重新排序关联模型 laravel

php - AJAX/JS/PHP : Submitting value of a select box without page refresh or button click

javascript - 页面重新加载时,Vue getter 返回未定义

javascript - 为什么我点击 div 元素后会被重定向?

javascript - 在 jquery 中重新索引数组对象

javascript - 更新 vue 组件数据中的数组

vue.js - 选择完成后,Vue Multiselect : How to send console. 记录

javascript - 如何编写 Google Doc 类型的富文本编辑器

javascript - 如何根据具有特定类的另一个元素设置一个元素的 CSS?

使用类似 base 的 Canvas 的 Javascript map 库