Javascript 比较对象数组和字符串数组并删除重复项
我已经找了很长时间了,但找不到解决办法 我有一个对象数组-Javascript 比较对象数组和字符串数组并删除重复项,javascript,react-redux,Javascript,React Redux,我已经找了很长时间了,但找不到解决办法 我有一个对象数组- const arrayOfObjects = [{id:"EUR", name:"EURO"}, {id:"USD", name:"US Dollar"}...] 然后我有一个字符串数组 const arrayOfStrings = ["EUR"] 我想得到第三个数组,它将包含完整的对象,但只包含id!==数组字符串中的元素 结果如何- const resultArray = [{id:"USD", name:"US Dollar"
const arrayOfObjects = [{id:"EUR", name:"EURO"}, {id:"USD", name:"US Dollar"}...]
然后我有一个字符串数组
const arrayOfStrings = ["EUR"]
我想得到第三个数组,它将包含完整的对象,但只包含id!==数组字符串中的元素
结果如何-
const resultArray = [{id:"USD", name:"US Dollar"}].
我该怎么做呢
编辑:我是作为createSelector的一部分来做这件事的
export const currencies = curr => {
return createSelector(
[arrayObjectSelector, arrayStringsSelector(curr)],
(objectArr, stringArr) =>
objectArr &&
objectArr.filter(
currency => stringArr && stringArr.indexOf(currency.id) == -1
)
);
};
由于某些原因,货币数组保持不变。您可以使用
array#filter
过滤数组,其中不存在id值arrayOfStrings
const arrayOfObjects=[{id:“欧元”,名称:“欧元”},{id:“美元”,名称:“美元”}]
const arrayOfStrings=[“欧元”]
const res=arrayOfObjects.filter(item=>arrayOfStrings.indexOf(item.id)=-1);
console.log(res)
Array filter…在这里发布之前,我尝试了许多不同的解决方案,包括prasanth的解决方案。它不工作,不幸的是,我在redux中将它用作createSelector的一部分,由于某种原因它不工作..原因是什么?对不起,我不知道redux。请在objectArr
和stringArr
中发布您得到的值?我得到了整个对象,没有任何东西被过滤。[{id:“EUR”,name:“Euro”},{id:“USD”,name:“usdollar”}我还试图将它存储到一个变量并返回它,但仍然没有结果。(const x=objectArr&&objectArr..)stringArr我得到[“欧元”,“美元”]