在数组中搜索另一个数组中包含的属性值

时间:2016-09-20 21:03:22

标签: javascript arrays ecmascript-6 lodash

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

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。

4 个答案:

答案 0 :(得分:2)

您可以使用简单的过滤器:

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);

答案 1 :(得分:1)

这是ES2015方式:



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

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

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

console.log(pluckedValue);




答案 2 :(得分:0)

如果你想要一个值,我会使用一个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

答案 3 :(得分:0)

另一种方式;

rr <- range(d3)
bb <- seq(floor(rr[1]),ceiling(rr[2]))
mm <- apply(d3[,-1],1,function(x) bb %in% seq(floor(x["med2"]),ceiling(x["med1"])))
events_at_t <- apply(mm,1,sum)
plot.ts(events_at_t, ylab="Count")