访问数组并查看信息是否已包含在数组中

时间:2018-03-05 11:50:31

标签: javascript node.js

我需要的是:访问一个数组并查看该数据是否已包含在数组中。它遵循以下代码:

exports.anexo = function(req, res){
  console.log('chegou na função do back-end');
  var arquivo = req.body.conteudo.split('\n');
  var dados = [];
  var dataToSave = '';
  var dadosAgrupados = []; 

  dadosArray = [];
  for(var i = 0; i < arquivo.length; i++){
     arquivo[i] = arquivo[i].split(',');
     dados = arquivo[i];

     if(dados[1] != undefined){
       console.log('dados: ',dadosArray.indexOf(dados[1]));

       //preciso que so adicione se nao houver dados[1] em dadosArray
       if(dadosArray.indexOf(dados[1]) == -1){
         dadosArray.push({"desc": dados[1], "mun": dados[2].slice(0,4)});
       }

       dadosArray.forEach(function(value, index) {
         if(value.desc === dados[1]){
           var recebeProp = value.mun;
           value.mun = dados[2].slice(0,4) + "," + recebeProp;
           console.log("concatenou:", value);
         }
       });
     }
   }

   dadosArray.forEach(function(value, index){
     if(dataToSave == ""){
       dataToSave = dataToSave + "('" + value.desc + "','" + value.mun + "')";
     } else {
        dataToSave = dataToSave + ",('" + value.desc + "','" + value.mun + "')";
     }
   });

   console.log('Insert final : ', dataToSave);

如果dataArray

中没有数据[1],我需要添加它

3 个答案:

答案 0 :(得分:0)

要检查是否设置了变量,可以直接在if语句中使用它。

示例:

&#13;
&#13;
var test = [];
test[0] = "Hello world!";

console.log(test[0]); //Hello world
console.log(test[1]); //undefined

if(!test[1]) {
  //code if variable is not set
  console.log("Variable test[1] is undefined!");
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

只需使用.includes()方法

即可
[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false

答案 2 :(得分:0)

我使用forEach函数和indexOf函数解决了这个问题,但是谢谢。