如何将数字的倍数推到数组?

时间:2016-03-29 13:10:11

标签: javascript

如何将数字的倍数推向数组?例如,如果输入是(6),我想创建一个包含[6, 12, 18, 24, 30, 36, etc...]

的数组

对我来说最直观的方法不起作用。

for (var i = 0; i < 10; i++) {
    firstArray.push(arr[0] *= 2);
}

这会使之前的数字乘以2,从而导致指数增长。 [14,28,56,112,224,448,896,1792等]

如何实现这一目标?

6 个答案:

答案 0 :(得分:2)

<强>问题:

Pranav评论的代码中的问题是在for循环中使用乘以2。

使用i迭代器索引可以解决问题。

firstArray.push(6 * (i + 1));

由于i0开始,i + 1会给出 1-based 的数字。

另一种方法:

首先添加数字

var num = 6,
    arr = [num];

然后添加数组中前一个数字的两倍。

for (var i = 1; i < 10; i++) {
    arr.push(arr[i - 1] + num);
}

&#13;
&#13;
var arr = [6];

for (var i = 1; i < 10; i++) {
  arr.push(arr[i - 1] + arr[0]);
}

console.log(arr);
&#13;
&#13;
&#13;

使用for循环也可以在单行中完成同样的事情。

&#13;
&#13;
var arr = [];
for (let i = 0, num = 6; i < 10; i++, num += 6) {
  arr.push(num);
}

console.log(arr);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用map

function multiplyArrayElement(num) {
    return num * 2;
}
numbers = [6, 12, 18, 24, 30, 36];

newArray = numbers.map(multiplyArrayElement);

https://jsfiddle.net/25c4ff6y/

答案 2 :(得分:1)

使用Array.from比较干净。请注意它的浏览器支持。

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/03/30 01:50:18 INFO CoarseGrainedExecutorBackend: Registered signal handlers for [TERM, HUP, INT]
16/03/30 01:50:19 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/03/30 01:50:19 INFO SecurityManager: Changing view acls to: ubuntu
16/03/30 01:50:19 INFO SecurityManager: Changing modify acls to: ubuntu
16/03/30 01:50:19 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(ubuntu); users with modify permissions: Set(ubuntu)
16/03/30 01:50:20 INFO Slf4jLogger: Slf4jLogger started
16/03/30 01:50:20 INFO Remoting: Starting remoting
16/03/30 01:50:20 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://driverPropsFetcher@192.168.1.82:38333]
16/03/30 01:50:20 INFO Utils: Successfully started service 'driverPropsFetcher' on port 38333.
16/03/30 01:50:20 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkDriver@192.168.1.81:34047] has failed, address is now gated for [5000] ms. Reason is: [Association failed$
Exception in thread "main" akka.actor.ActorNotFound: Actor not found for: ActorSelection[Anchor(akka.tcp://sparkDriver@192.168.1.81:34047/), Path(/user/CoarseGrainedScheduler)]
        at akka.actor.ActorSelection$$anonfun$resolveOne$1.apply(ActorSelection.scala:65)
        at akka.actor.ActorSelection$$anonfun$resolveOne$1.apply(ActorSelection.scala:63)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
        at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67)
        at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82)
        at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
        at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
        at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
        at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58)
        at akka.dispatch.ExecutionContexts$sameThreadExecutionContext$.unbatchedExecute(Future.scala:74)
        at akka.dispatch.BatchingExecutor$class.execute(BatchingExecutor.scala:110)
        at akka.dispatch.ExecutionContexts$sameThreadExecutionContext$.execute(Future.scala:73)
        at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40)
        at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248)
        at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:267)
        at akka.actor.EmptyLocalActorRef.specialHandle(ActorRef.scala:508)
        at akka.actor.DeadLetterActorRef.specialHandle(ActorRef.scala:541)
        at akka.actor.DeadLetterActorRef.$bang(ActorRef.scala:531)
        at akka.remote.RemoteActorRefProvider$RemoteDeadLetterActorRef.$bang(RemoteActorRefProvider.scala:87)
        at akka.remote.EndpointWriter.postStop(Endpoint.scala:561)
        at akka.actor.Actor$class.aroundPostStop(Actor.scala:475)
        at akka.remote.EndpointActor.aroundPostStop(Endpoint.scala:415)
        at akka.actor.dungeon.FaultHandling$class.akka$actor$dungeon$FaultHandling$$finishTerminate(FaultHandling.scala:210)
        at akka.actor.dungeon.FaultHandling$class.terminate(FaultHandling.scala:172)
        at akka.actor.ActorCell.terminate(ActorCell.scala:369)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:462)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
        at akka.dispatch.Mailbox.run(Mailbox.scala:219)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
16/03/30 01:50:20 INFO Utils: Shutdown hook called

答案 3 :(得分:0)

尝试这个

for (var i = 0; i < 10; i++) {
  firstArray.push(arr[0] * (i+1));
}

答案 4 :(得分:0)

db.ExecuteStoreCommand("DELETE FROM Table WHERE FirstName = {0}", firstname);

答案 5 :(得分:0)

&#34;一行&#34;具有Array.fillArray.map函数的解决方案:

var num = 6;

var arr = new Array(10).fill(0).map(function(v, k){ return num *(k + 1); });

console.log(arr); // [6, 12, 18, 24, 30, 36, 42, 48, 54, 60]