我有以下过滤器:
const auxHash = {};
myArray.filter(house =>
house.members === 3 &&
auxHash[house.id] ? false : auxHash[house.id] = true
)
我得到一个lint错误,说箭头函数不应该返回赋值。我也试过这个:
const auxHash = {};
myArray.filter(house =>
house.members === 3 &&
auxHash[house.id] ? false : (auxHash[house.id] = true)
)
但同样的问题。我怎么解决这个问题?
澄清。我正在尝试过滤属性members
与3
不同的数组元素,并且我还尝试根据属性id
删除重复元素(这是' s为什么我使用哈希)。
答案 0 :(得分:1)
在编辑问题之前。
如果使用{}
正文,则需要显式返回该函数的结果。
const auxHash = {};
myArray.filter(house => {
return house.members === 3 && auxHash[house.id] ? false : auxHash[house.id] = true;
})
此外,如果您的对帐单是一行,则可以省略{}
部分并删除return
const auxHash = {};
myArray.filter(house => house.members === 3 && auxHash[house.id] ? false : auxHash[house.id] = true)
答案 1 :(得分:0)
您正在重新格式化完全相同的语句并忽略linter的错误。你正在返回作业。那是你的问题。你正在这里做 - private static Encoding encoding = Encoding.UTF8;
....
var textReader = new StreamReader(reportCsv, encoding);
var csv = new CsvReader(textReader, new Configuration { BadDataFound = null, Delimiter = delimiter, Encoding = encoding });
你的三元结算为假或auxHash[house.id] = true
因此,重构返回实际值 -
auxHash[house.id] = true
你可以更简洁地写出来,但我把它拉出来说清楚。