如何进行循环检查

时间:2018-02-08 12:14:58

标签: javascript loops

我想测试local_key是否已经存在,是否存在生成另一个local_key并再次检查

// Here I go throught an object and try to return a index
const local_key = messagesRow.map((message, key) => {
    return message.local_key;
}).indexOf(message.local_key);

// If it returns 0 or bigger, it means that the local_key already exists
if(local_key >= 0){
    message.local_key = Math.floor(Math.random() * 9999);
}

修改 我想每次都重新检查,因为如果local_key存在并且我生成了另一个,那么新的local_key也可能存在

2 个答案:

答案 0 :(得分:1)

这会有效,但是你在整个数组上进行迭代,你只需要一个匹配。我建议使用一些javascript库,如下划线(here),它提供了很好的查找功能。

使用0到99999之间的随机数不是一个好的解决方案 - 您可能会生成重复的数字。更好的选择是一些UUID / GUID (参见这里的讨论:http://underscorejs.org/) - 根本不需要在数组中搜索它,因为这是唯一的

答案 1 :(得分:0)

生成密钥的最佳方法是使用uniqid

$id = md5(uniqid(date('d/m/Y H:i'), true));