在禁用 eslint 的情况下解决 no unused Expression Error?

Solve no unused Expression Error with out disabling eslint?

我正在使用 React。我有一个函数,它连接一个对象的键和 returns 作为字符串的结果。我收到一个如下所示的错误: 第 64:7 行:需要赋值或函数调用,却看到了表达式 no-unused-expressions

我的功能如下图

const allConcat = (listOfObj) => {
    let stringConcat = '';
    Object.keys(listOfObj).map((item, i)=>{
      (listOfObj[item] === 1)? stringConcat += item : null
    });
    return stringConcat
  }

这是每个版本的一个,我也遇到了这个错误。

  const allConcat = (listOfObj) => {
    let stringConcat = '';
    Object.keys(listOfObj).forEach(item =>{
      (listOfObj[item] === 1)? stringConcat += item : null
    });
    return stringConcat
  }

请让我知道我可以做些什么来摆脱这个错误。除了禁用 linter。

您可以使用 array.reduce 实现相同的效果,而不必创建 let 常量或迭代两次:

const allConcat = (listOfObj) => 
 Object.keys(listOfObj).reduce((acc, curr, index, array) => 
  listOfObj[curr] === 1 ? acc.concat(array[index + 1] ? `${curr}, `: curr) : acc,
 '');

改变这个

const allConcat = (listOfObj) => {
    let stringConcat = '';
    Object.keys(listOfObj).map((item, i)=>{
      (listOfObj[item] === 1)? stringConcat += item : null
    });
    return stringConcat
  }

至此

const allConcat = (listOfObj) => Object.entries(listOfObj)
    .filter(([key, val]) => val === 1)
    .map(([key]) => key)
    .join('')