微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建函数以在 if 语句中将对象添加到具有多个条件的数组

如何解决创建函数以在 if 语句中将对象添加到具有多个条件的数组

我正在尝试创建一个函数,将新的动物对象添加到现有的动物数组中。该代码似乎工作正常,只是它添加了 3 次新对象。我猜它一定与我的 if 语句中的 3 个条件有关。我不知道还能怎么写才能让它只添加一次新元素。

try (Connection dbConn = hConn.getHikariMap().get("" + connectionId).getConnection();) {
        Statement statement = dbConn.createStatement();
        if (fileData.get(0).length == 1) {

            fileData.stream().forEach(row -> {
                columnValTemp.append("','" + row[fileColumnorder.get(0)] + "','" + row[fileColumnorder.get(0)]);
                valuestemp.append(columnValTemp);
                columnValTemp.setLength(0);
                values.append(valuestemp);

                String query = "INSERT INTO " + schema + "." + tableName + " (" + columns + ") VALUES " + " ('" + values+ "')";
                try {
                    statement.addBatch(query);
                } catch (sqlException e) {
                    e.printstacktrace();
                }
                values.delete(values.length() - valuestemp.length(),values.length());
                valuestemp.setLength(0);
            });
            
            statement.executeBatch();
}
    } catch (sqlException e) {
        logger.error(e,e);
        e.printstacktrace();
    }

解决方法

您可以做的是删除 for 循环并使用“find”方法在数组中搜索具有提供动物名称的动物。

function add(animals,animal) {
    const animalExists = animals.find((a) => a.name === animal.name);
    if ((!animalExists) && (animal.name.length > 0) && (animal.species.length > 0)) {
        animals.push(animal);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。