Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VueJS:检查属性是否具有来自其他属性的值_Javascript_Arrays_Vue.js - Fatal编程技术网

Javascript VueJS:检查属性是否具有来自其他属性的值

Javascript VueJS:检查属性是否具有来自其他属性的值,javascript,arrays,vue.js,Javascript,Arrays,Vue.js,我目前正在学习Javascript(VueJS),并更新了我现有的一个Laravel应用程序。到目前为止效果相当不错。但有一点我还是遇到了麻烦:我有两个prop(例如prop1和prop2),如果prop1中的值也出现在prop2中,意味着该值在prop2中的某个位置,我希望以不同的方式呈现表中的条目。请看以下示例代码: <tr v-for="s in list"> <td v-if="s.value1 is also present in prop2"><

我目前正在学习Javascript(VueJS),并更新了我现有的一个Laravel应用程序。到目前为止效果相当不错。但有一点我还是遇到了麻烦:我有两个prop(例如prop1和prop2),如果prop1中的值也出现在prop2中,意味着该值在prop2中的某个位置,我希望以不同的方式呈现表中的条目。请看以下示例代码:

<tr v-for="s in list">
    <td v-if="s.value1 is also present in prop2"><i class="fa fa-circle text-danger"></i></td>
    <td v-else><i class="fa fa-circle text-success"></i></td>
    <td>{{ s.value1 }}</td>
    <td>{{ s.value2 }}</td>
</tr>

{{s.value1}}
{{s.value2}}
有没有一种简洁的“vue-like”方法可以做到这一点?


<td v-if="s.value1 === s.value2">

您可以使用.some运算符检查另一个数组中是否存在值:

// Will return true if any items matches s.value1
prop2.some(function (item) {
    return item === s.value1
});
您可以将其作为方法或计算属性添加到Vue实例中,例如:

var app = new Vue({
    el: "#vue",
    data: {
      prop2: []
    },
    methods: {
      checkProp2: function(val) {
        return prop2.some(function (item) {
          return item === val;
        })
      }
    }
})
然后,您可以执行以下操作:

<tr v-for="s in list">
    <td v-if="checkProp2(s.value1)"><i class="fa fa-circle text-danger"></i></td>
    <td v-else><i class="fa fa-circle text-success"></i></td>
    <td>{{ s.value1 }}</td>
    <td>{{ s.value2 }}</td>
</tr>

{{s.value1}}
{{s.value2}}

上面写着“也在场”,所以我想相等的比较是不够的,那么OP应该解释“也在场”的确切含义。谢谢。作品很棒:)