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)