针对确定的模式验证数组的所有列

Verify all columns of the array for a determined pattern

我有以下 javascript 代码

var list = [
{
  Date : '2014-12-31 12:23:43',
  DateStart: '1980-12-30 23:43:42',
  Name: 'Kate',
  ...
  ...
},
{
  Date : '1978-05-21 23:43:65',
  DateStart: '1973-04-06 12:34:09',
  Name: 'John',
  ...
  ...
}
];

以及以下用于验证正则表达式模式的代码:

for (var i in list) {
     var data = [];
     if (/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/.test(list[i].?)) {
         data.push({Data: list[i].Data });
     }
}

上面代码中的变量i就是要和数组的每一行进行交互。

如何通过 for 循环与每一行和每一列进行交互,而不必在上述代码的问号中指定?

如何对所有列进行日期模式验证?

使数组 date 只保留值

2014-12-31 12:23:43,
1980-12-30 23:43:42,
1978-05-21 23:43:65,
1973-04-06 12:34:09

How can I interact through for loops with each line and column without having to specify this in the question mark from the above code?

必须指定你想要访问的字段,否则解释器应该如何知道你想要访问什么?

如果您想避免使用索引器,您可以使用 underscore.js 等外部库来遍历集合:

http://underscorejs.org/#each

_.each(list, function(item) { 
  // validate item.Date and item.DateStart here
});

或者这里有关于这个主题的非常简洁的post:For-each over an array in JavaScript?

这就是我想要的吗

for (var j = 0; j < list.length; j++) {
        for (p in list[j]) {
            if (/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/.test(list[j][p])) {
                data.push({Data: list[j][p] });
            }
        }
    }