微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在特定情况下将数据推送到数组中

如何解决在特定情况下将数据推送到数组中

我正在尝试使用特定索引将数据推送到数组中。

起初,我有一个空数组:[]

从web socket(number)接收数据后,例子number = 4,我想把这个数字压入Array 4的位置。

输出[null,null,4]

或者我不能输入除 null 之外的任何其他内容,例如:“-”

输出[-,-,4]

从网络套接字接收到第二个数据后,示例编号 = 2。

输出[-,2,4]

我试过了:

let tArray = [];
for(let i=0; i<number + 1; i++){
   if(i == number){
      tArray[i].push(number);
   }
   if(!tArray[i]){
      tArray[i].push("-");
   }
}

解决方法

您可以创建一个所需大小的数组,用 "-" 填充它,然后在您的特定位置设置数字:

const number = 2,maxSize = 4;

const tArray = new Array(maxSize).fill('-');
tArray[number] = number;

console.log(tArray);

,

创建一个预先定义大小的数组,然后将数据放入数组中

let data = 4;
let size = 10; // as much as you like

let array = new Array(size).fill('-');

// now when the data comes from the web socket you can simply put inside the array

array[data - 1] = data;
console.log(array)

,

这应该适合你:

const tArray = [];
if (tArray.length < number+1) {
  while (tArray.length < number+1) {
    tArray.push('-');
  }
}
tArray[number] = number;

如果您更改 tArray[i].push() 中的 tArray.push() 部分,您的代码也应该没问题。

,

Concat 当前数组(tArray),其中 new Array 的长度等于:

您的号码(和职位) - 当前 array length + 1

这有 仅当当前数组(tArray) 不够大时才会发生

var tArray = [];
var pushIntoTarray = function (number) {
    if (tArray.length < number) {
        tArray = tArray.concat(new Array(number - tArray.length + 1).fill("-"));
    }
    tArray[number] = number;
    console.log(tArray);
}
pushIntoTarray(4);
pushIntoTarray(2);
pushIntoTarray(1);
pushIntoTarray(10);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?