JS-将正则表达式与数组的每个项目匹配

时间:2018-11-04 21:26:00

标签: javascript arrays

在js中,我有以下代码:

public static <T> void bindLastColumnWidth (TableView<T> tableView) {
    List<TableColumn<T,?>> columns = tableView.getColumns();
    List<TableColumn<T,?>> columnsWithoutLast = columns.subList(0, columns.size() - 1);
    TableColumn lastColumn = columns.get(columns.size() - 1);

    NumberExpression expression = tableView.widthProperty();
    Insets insets = tableView.getInsets();
    expression = expression.subtract(insets.getLeft() + insets.getRight());

    for (TableColumn column : columnsWithoutLast) {
        NumberExpression columnWidth = Bindings.when(column.visibleProperty())
            .then(column.widthProperty())
            .otherwise(0);
        expression = expression.subtract(columnWidth);
    }

    ScrollBar verticalScrollBar = getScrollBar(tableView, Orientation.VERTICAL);
    if (verticalScrollBar != null) {
        NumberExpression scrollBarWidth = Bindings.when(verticalScrollBar.visibleProperty())
            .then(verticalScrollBar.widthProperty())
            .otherwise(0);
        expression = expression.subtract(scrollBarWidth);
    }

    expression = Bindings.max(lastColumn.getPrefWidth(), expression);

    lastColumn.prefWidthProperty().bind(expression);
}

private static ScrollBar getScrollBar (Node control, Orientation orientation) {
    for (Node node : control.lookupAll(".scroll-bar")) {
        if (node instanceof ScrollBar) {
            ScrollBar scrollBar = (ScrollBar)node;
            if (scrollBar.getOrientation().equals(orientation)) {
                return scrollBar;
            }
        }
    }
    return null;
}

在控制台中,这将产生三个单独但相同的阵列。 如何在一个数组中获得所有匹配的实例?

2 个答案:

答案 0 :(得分:0)

在记录结果之前关闭for循环:

for (var i = 0; i < inputs.length; i++) 
{
    result.push(inputs[i].match(cijfers));
}
console.log(result)

您将console.log输入到for循环中。这就是为什么它用一个元素打印结果的原因(当i = 0时)。当i = 1时打印两个元素,而当i = 2时打印三个元素。

答案 1 :(得分:0)

使用Array.prototype.filter()。参见Documentation