Nodejs数组索引的函数用法

时间:2015-10-12 10:18:43

标签: arrays node.js random

我正在尝试在nodejs上开发一个随机类别Id生成器函数。首先,我从我的数据库接收所有现有的类别Id并将它们推入一个数组然后我生成一个随机整数(在边界之间),我将随机数与我的cat id数组进行比较。我使用indexof()函数进行比较,但它总是返回true;可能是什么问题。这是我的代码;

var random = require("random-js")
var selectCategoryID = "SELECT id from category.category";
var catIdresult = client.querySync(selectCategoryID);
var catIdArray = [];
    catIdresult.forEach(function (row) {
        var catId = row.id;
        catIdArray.push(catId);
    });

    var randomNum = new random()

    var K = randomNum.integer(16777000, 16777999);

   if(catIdArray.indexOf(K)){
       console.log("Error, the id is : " + K);
   }
    else {console.log("Success, the id is : " + K)}

1 个答案:

答案 0 :(得分:3)

indexOf函数返回数组中项的第一个索引,如果找不到该项,则返回-1。所以你的代码应该这样做:

if (catIdArray.indexOf(K) === -1) {
   //insert into db
}
else {
   //error
}

您还可以使用map功能获取所有ID:

catIdArray = catIdresult.map(function(cat) {return +cat.id});