JS输出1到100之间的奇数,并存入数组中。并且每行输出10个数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS输出1到100之间的奇数,并存入数组中。并且每行输出10个数相关的知识,希望对你有一定的参考价值。
现将奇数数组输出,然后进行每10个数换行
参考技术A var arr=[];for(var i=1;i<=100;i++)
if(i%2!=0)
arr.push(i);
for(var i=0;i<5;i++)
// document.write(arr.slice(i*10,(i+1)*10)+"</br>");
obj.innerHTML+=arr.slice(i*10,(i+1)*10)+"</br>"//不想写在document可以用这条
计算 Hive 数组中连续日期之间的差异
【中文标题】计算 Hive 数组中连续日期之间的差异【英文标题】:Calculate differences between consecutive dates in Hive arrays 【发布时间】:2017-12-19 04:18:35 【问题描述】:我正在使用 Hive,并且需要计算存储在包含在表的每一行中的数组中的连续日期之间的差异(以天为单位),以便获得记录时间之间的差距。每一行是针对一个客户的,并包含他们的交易日期。例如(最后一列是所需的输出):
customer_id | dates |output
--------------------------------------------------------------------------
0001 | ["2016-09-01","2017-01-01","2017-02-05","2017-11-01"]|[122,35,269]
目标是遍历表中的所有行来生成这个新列。客户会有不同数量的交易,所以我需要遍历日期列表。
【问题讨论】:
如果你的问题不是Mysql,请不要tag 【参考方案1】:假设输入表为array_test
,输出表为output_table
。此外,array_test 包含列 customer_id string
和 dates Array<string>
我在输入表中插入的数据是:
insert into array_test select "0001",ARRAY("2016-09-01","2017-01-01","2017-02-05","2017-11-01")
insert into array_test select "0001",ARRAY("2016-09-01","2017-01-01","2017-02-05","2017-11-02")
我使用的输出表创建语句是:
CREATE TABLE output_table(customer_id string,dates array<string>,output array<int>);
然后使用以下查询从输入表中选择并插入到输出表中:
insert into output_table select customer_id,dates, ARRAY(datediff(to_date(dates[1]), to_date(dates[0])),datediff(to_date(dates[2]), to_date(dates[1])),datediff(to_date(dates[3]), to_date(dates[2]))) from array_test;
下面是输出:
hive> select output from output_table;
OK
[122,35,269]
[122,35,269]
[122,35,270]
[122,35,270]
Time taken: 0.071 seconds, Fetched: 4 row(s)
【讨论】:
我的主要问题是每个客户会有不同数量的交易,所以我不能硬编码数组索引。这需要一个循环或 lambda 类型的操作,我无法实现。 如果是这种情况,总是可以选择在 hive 中实现 UDF 并执行所有操作。如果你可以使用udf,那么在java代码中实现逻辑。以上是关于JS输出1到100之间的奇数,并存入数组中。并且每行输出10个数的主要内容,如果未能解决你的问题,请参考以下文章
用js实现随机选取10–100之间的10个且不重复的数字,存入一个数组。
使用for循环遍历100以内的奇数,并计算所有的奇数的和并输出?