过滤数组返回空

时间:2020-01-21 15:29:14

标签: javascript arrays

我试图用检索到的所有值填充一个数组(我处于循环中),然后删除YearsJustSelected数组中已经存在的值:

if Text == i:

例如:
循环1-> yearsJustSelected = [1、2、3]-yearsJustSelectedAll = [1、2、3]-yearsJustSelectedFiltered = []
循环2-> yearsJustSelected = [2,3,4,5]-yearsJustSelectedAll = [1,2,3,4,5]-yearsJustSelectedFiltered = [4,5]->因为[2,3]已经存在在YearsJustSelectedAll在第一个循环中

此代码:

yearsJustSelected.forEach((el:any)=>{
    yearsJustSelectedAll.push(el);
  });


  yearsJustSelectedFiltered = yearsJustSelected.filter((el: any) => !yearsJustSelectedAll.includes(el));

总是返回一个空数组。

2 个答案:

答案 0 :(得分:0)

var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database: "node"
  });
                                        ↓
con.query(`DELETE FROM NodeSQL WHERE id='${id}';`, function (err, result) {     ?????
    if (err) throw err;
});

答案 1 :(得分:0)

您可以检查目标数组是否没有该项。然后将项目推到目标数组。

function select(source, target) {
    source.forEach(v => target.includes(v) || target.push(v));
}

var yearsJustSelectedAll = [];

select([1, 2, 3], yearsJustSelectedAll);
console.log(...yearsJustSelectedAll);

select([2, 3, 4, 5], yearsJustSelectedAll);
console.log(...yearsJustSelectedAll);

select([4, 5], yearsJustSelectedAll);
console.log(...yearsJustSelectedAll);