首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查vue.js中的数组中是否已经存在项?

如何检查vue.js中的数组中是否已经存在项?
EN

Stack Overflow用户
提问于 2017-01-04 08:00:15
回答 3查看 14.7K关注 0票数 3

我有一个数组,我在这个数组中点击添加值,但我想检查值是否已经在数组中,如果它什么都不做。我尝试使用indexOf,但每次都得到相同的结果

代码语言:javascript
复制
this.fields.push(this.field);
      this.field = { value: '' };
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-04 08:04:04

是否通过value属性确定它是否在数组中?如果是这样的话,您可以使用Array.some()

代码语言:javascript
复制
var exists = this.fields.some(function(field) {
  return field.value === this.field.value
});

if (!exists) {
  this.fields.push(this.field);
}
票数 5
EN

Stack Overflow用户

发布于 2020-07-18 07:02:30

在对象数组中,最好使用Array.some()

代码语言:javascript
复制
this.users = [{id : 1, name : 'Jonh Doe'},{id : 2, name : 'Mary Jean'}]

if(!this.users.some(data => data.id === 1)){
    //don't exists       
}else{
    //exists because Jonh Doe has id 1
}

来源:https://www.samanthaming.com/

票数 5
EN

Stack Overflow用户

发布于 2020-05-24 18:11:16

这可能是一个详细且简单的解决方案。

在JavaScript或Jquery中

代码语言:javascript
复制
//plain array
var arr = ['a', 'b', 'c'];
var check = arr.includes('a');
console.log(check); //returns true
if (check)
{
   // value exists in array
   //write some codes
}

// array with objects
var arr = [
      {x:'a', y:'b'},
      {x:'p', y:'q'}
  ];

// if you want to check if x:'p' exists in arr
var check = arr.filter(function (elm){
    if (elm.x == 'p')
    {
       return elm; // returns length = 1 (object exists in array)
    }
});

// or y:'q' exists in arr
var check = arr.filter(function (elm){
    if (elm.y == 'q')
    {
       return elm; // returns length = 1 (object exists in array)
    }
});

// if you want to check, if the entire object {x:'p', y:'q'} exists in arr
var check = arr.filter(function (elm){
    if (elm.x == 'p' && elm.y == 'q')
    {
       return elm; // returns length = 1 (object exists in array)
    }
});

// in all cases
console.log(check.length); // returns 1

if (check.length > 0)
{
   // returns true
   // object exists in array
   //write some codes
}

在Vue中

代码语言:javascript
复制
<script>
    export default {
        data: function () {
            return {
               arr = [
                   {x:'a', y:'b'},
                   {x:'p', y:'q'}
                ],
             }
         },
        methods: {

            // assign this function to any event of any dom
            checkObjInArr = function(){

                     var check = this.arr.filter(function (elm) {
                         if (elm.x == 'a' && elm.y == 'M') {
                                 return elm;
                            }
                      });
                     console.log(check.length > 0); // returns 1
                     if (check.length > 0)
                        {
                            // returns true
                            // object exists in array
                            //write some codes
                         }
                },                
        },
     }
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41454247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档