Javascript 从结果数组获取值

Javascript 从结果数组获取值,javascript,Javascript,嗨!我从这个代码中得到这个结果: Array[7998] [0 … 99] 0:" 1 2015-01-14 13:27:07 1 0 2 0" 1:" 1 2015-01-14 13:30:11 1 0 2 0" 2:" 1 2015-01-14 13:33:34 1 0 2 0" 3:" 1 2015-01-14 13:33:43 1 0 2 0" 4:"

嗨!我从这个代码中得到这个结果:

Array[7998]
[0 … 99]
0:"        1    2015-01-14 13:27:07 1   0   2   0"
1:"        1    2015-01-14 13:30:11 1   0   2   0"
2:"        1    2015-01-14 13:33:34 1   0   2   0"
3:"        1    2015-01-14 13:33:43 1   0   2   0"
4:"        2    2015-01-21 10:54:37 1   0   1   0"
5:"        2    2015-02-03 11:39:57 1   0   1   0"
6:"        2    2015-02-03 11:44:56 1   4   1   0"
7:"        1    2015-02-03 11:44:59 1   4   2   0"
8:"        2    2015-02-03 11:49:49 1   0   1   0"
9:"      221    2015-02-03 11:49:51 1   0   1   0"
10:"      221   2015-02-03 11:49:53 1   0   1   0"
11:"      221   2015-02-03 11:52:07 1   0   1   0"
12:"        1   2015-02-26 17:29:24 1   4   2   0"
有没有办法只获取前三个值或列?前三列表示Id、日期和时间,因此我需要像这样提取这三列

function onReadFile(file){
  var txt = file.target.result;
  var list = txt.split('\n');
//  var result = list.map(function(item){
//     return item.split('\n');
//  });
  console.log(list);
}

谢谢。

您可以使用正则表达式按字符串拆分多个空格

[1,2015-01-14,13:27:07][1,2015-01-14,13:30:11][1,2015-01-14,13:33:34][...]

前三列分别位于索引1、2和3。

您可以在空格上拆分,并将其映射到所需的值

var fields = list.split(/\s+/);
console.log(fields);
.匹配非空格字符的字符,.切片结果数组的前三个元素

风险值列表=[1 2015-01-14 13:27:07 1 0 2 0 , 1 2015-01-14 13:30:11 1 0 2 0 , 1 2015-01-14 13:33:34 1 0 2 0 , 1 2015-01-14 13:33:43 1 0 2 0 , 2 2015-01-21 10:54:37 1 0 1 0 , 2 2015-02-03 11:39:57 1 0 1 0 , 2 2015-02-03 11:44:56 1 4 1 0 , 1 2015-02-03 11:44:59 1 4 2 0 , 2 2015-02-03 11:49:49 1 0 1 0 , 221 2015-02-03 11:49:51 1 0 1 0 , 221 2015-02-03 11:49:53 1 0 1 0 , 221 2015-02-03 11:52:07 1 0 1 0 , 1 2015-02-26 17:29:24 1 4 2 0]; var result=list.mapfunctiontext{ 返回text.match/[^\s]+/g.slice0,3 }; console.logresult var text=1 2015-01-14 13:30:11 1 0 2 0\n 1 2015-01-14 13:33:34 1 0 2 0\n 1 2015-01-14 13:33:43 1 0 2 0; 变量列表= text.split'\n'//拆分行 .mapfunctionline{//映射这些行 var parts=line.trim//修剪当前行删除周围的空间 .split/\s+/;//将列按多个空格、空格、制表符、。。。 return parts.slice0,3;//返回与所需输出类似的数组,仅返回每行的前三列 //如果希望结果是一个对象,那么删除上面的返回语句并取消对下面代码的注释 //var o={}; //o、 id=零件[0]; //o、 日期=零件[1]; //o、 时间=部分[2]; //返回o; };
控制台日志列表;每个行之间是否有空格或制表符?至少显示3行的预期结果示例?您想将它们作为对象吗?@ibrahimmahrir:请查看我的编辑。@Ibanez1408对象会更好!检查我的答案!我用的是对象而不是数组!如果你想让我更新,请告诉我!要求是返回数组,而不是对象。@guest271314请参见问题下面的注释!在他发布所需输出之前,我回答了!所以我现在在等待他的回应!这可能是他真正想要的!对象是伟大的!然而,我需要将每一行放在一个google工作表中,并通过上面的示例输出来放置它。但是,如果您能教我如何迭代对象以获得上面的示例,那将是一个巨大的帮助!要求是返回一个数组,而不是对象。实际上,不,他在回答中非常清楚,值的对象会更好。就像这样…[12015-01-14,13:27:07][12015-01-14,13:30:11][12015-01-14,13:33:34][…]很难根据经验确定什么更好。仅在原始问题中指出了需求和javascript的实际文本。哈!我们在那件事上都被打败了,虽然你显然是对的,但那是他要求的。
//the function that looks at the item entry and gets the 
//needed values.
function parse (item) {
    var items = item.split(' ')

  var actualItems = items.filter(x=>x !== "")

    return [
      actualItems[0], 
      actualItems[1],
      actualItems[2]
    ]
  }
}

//your array of items
var items = [
"        1    2015-01-14 13:27:07 1   0   2   0",
"        1    2015-01-14 13:30:11 1   0   2   0"
]

//transform your array to appropriate values.
var itemData = items.map(parse);

console.log(itemData)