【问题标题】:How to get the output value of for loop in an array in javascript如何在javascript中的数组中获取for循环的输出值
【发布时间】:2020-01-09 16:17:16
【问题描述】:

您好,我正在使用以下循环从动态创建的输入表单中获取值。

我需要将 for 循环输出值存储在一个数组中,如下所示

points= [[0,420],[10,373],[20,340],[30,313],[40,293],[50,273],[60,259],[70,243]]

我的 for 循环代码

//for example intId = 4
for(i=0;i<intId;i++){
        var it=i+1
        var af = $('#af'+it).val()
        var sp = $('#sp'+it).val()
        var ad = [af,sp]
        console.log(ad);
    }

我需要上述格式的结果 例如。

[[af1,sp1],[af2,sp2],[af3,sp3],...]

【问题讨论】:

  • ... 将信息附加到数组中。

标签: javascript arrays for-loop


【解决方案1】:

除非我在这里遗漏了一些特别明显的东西,否则您需要做的就是创建一个数组,然后.push 将新数组放入其中...

var newArray = [];
for (i=0;i<intId;i++){
    var it=i+1
    var af = $('#af'+it).val()
    var sp = $('#sp'+it).val()
    var ad = [af,sp]
    newArray.push(ad);
}
console.log(newArray);

根据 OP 的评论...

我需要这样的输出 [2, 3] [1, 2] 但我越来越像这样 ["2", "3"] ["1", "2"]

然后使用parseInt获取实际数字...

var newArray = [];
for (i=0;i<intId;i++){
    var it=i+1
    var af = parseInt($('#af'+it).val())
    var sp = parseInt($('#sp'+it).val())
    var ad = [af,sp]
    newArray.push(ad);
}
console.log(newArray);

【讨论】:

  • 谢谢.. 但我需要这样的输出 [2, 3] [1, 2] 但我越来越喜欢这样 ["2", "3"] ["1", "2 "]
  • @DanielGale i = 1 是一个很酷的想法,但实际上它只会抛出 i-1 时间的值
  • 非常感谢它运行良好。还有一个疑问如何在输出中按升序或降序对数组进行排序
  • 考虑数组上的.sort方法,传入compareFunction
  • 如果你把那一行扔掉,然后把你的 for 改成i=1;i&lt;=intId;i++,同时注意比较。
【解决方案2】:

您可以创建一个数组并将值存储在数组中。

const arr = [] // Initialize an empty array
for(i=0;i<intId;i++){
    var it = i+1
    var af = $('#af'+it).val()
    var sp = $('#sp'+it).val()
    var ad = [af,sp]
    arr.push(ad); // Append to array
}
console.log(arr)

【讨论】:

  • 很棒的工作,但我需要将值作为数字推为这样的字符串 ["2", "3"] ["1", "2"]
  • 在推入数组之前,只需将 afsp 从字符串转换为数字。像这样var ad = [Number(af),Number(sp)],假设afsp总是以字符串形式表示一个有效数字。
猜你喜欢
  • 1970-01-01
  • 2015-10-18
  • 2019-07-20
  • 2021-10-08
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
相关资源
最近更新 更多