我试图从一个对象数组中提取一个对象,该对象的属性值包含在我的另一个数组中。
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。
答案 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")