【问题标题】:Search an array for a property value that is contained in another array在数组中搜索包含在另一个数组中的属性值
【发布时间】:2016-09-20 21:03:22
【问题描述】:

我正在尝试从属性值包含在我的另一个数组中的对象数组中提取一个对象。

const myArrayOfObjects = [
 { value: 'test1' }
 { value: 'test2' }
]

const myArray = [ 'test1', 'test5' ];

const pluckedValue = myArrayOfObjects.find((item) => {
    let x;

     myArray.forEach((include) => {
         x = include === item.value ? include : undefined;
     });

     return item.value === x;
});

我有什么工作,但感觉不对。有没有更好的方法来实现这一点?这有效率吗?我可以在我的应用程序中访问 lodash 和 ES6。

【问题讨论】:

  • myArrayOfObjects.find((item) => myArray.includes(item.value) });

标签: javascript arrays ecmascript-6 lodash


【解决方案1】:

你可以只使用一个简单的过滤器:

var result = myArrayOfObjects.filter(function (el) {
  return myArray.includes(el.value);
});

var myArrayOfObjects = [
 { value: 'test1' },
 { value: 'test2' }
];
var myArray = ['test1', 'test5'];

var result = myArrayOfObjects.filter(function (el) {
  return myArray.includes(el.value);
});

console.log(result);

【讨论】:

  • 让它更符合 ES6 标准(并且稍微短一些).filter(el => myArray.includes(el.value));
【解决方案2】:

这是 ES2015 的方式:

const myArrayOfObjects = [
 { value: 'test1' },
 { value: 'test2' }
];

const myArray = [ 'test1', 'test5' ];

const pluckedValue = myArrayOfObjects.filter(item => myArray.includes(item.value));

console.log(pluckedValue);

【讨论】:

    【解决方案3】:

    如果你想要一个值,我会使用 find 函数:

    myArrayOfObjects.find(function(include){
             return myArray.indexOf(include.value) !== -1;
         });
    

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

    【讨论】:

      【解决方案4】:

      另一种方式;

      var myArrayOfObjects = [
                              { value: 'test1'},
                              { value: 'test2'}
                             ],
                   myArray = [ 'test1', 'test5' ],
                 something = [];
      
      for (var obj of myArrayOfObjects) myArray.includes(obj.value) && something.push(obj);
      console.log(something);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-23
        • 2013-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-24
        • 2021-04-01
        • 2021-10-15
        相关资源
        最近更新 更多