强制 javascript 键整数用 null 填充数组



我正在Javascript中创建一个数组,其中产品ID用于键。由于键是数字,数组用 null 填充空白。

例如,如果我只有两个产品,它们的 id 是 5 和 7,我会执行以下操作:

var arr = []
arr[5] = 'my first product';
arr[7] = 'my second product';

然后将该数组传递给 PHP 脚本,但在打印数组时,我得到以下内容;

Array (
    [0] = null
    [1] = null
    [2] = null
    [3] = null
    [4] = null
    [5] = My first product
    [6] = null
    [7] = My second product
)

我的 ID 号实际上是 6 位数字长,所以在遍历数组时,即使我实际上只有两个产品,也有 100,000 次迭代。

如何创建数组,以便不输入空值?我想把键变成字符串,但由于数组是动态构建的,我不确定该怎么做。

var arr = [];
for(var i=0; i<products.length; i++)
{
    array[products[i].id] = products[i].name;
}

谢谢

为了迭代数组,您可以使用 Array#forEach ,它跳过稀疏项目。

var array = [];
array[5] = 'my first product';
array[7] = 'my second product';
array.forEach(function (a, i) {
    console.log(i, a);
});

为了更好地组织,您可以使用一个对象,使用给定的 id 直接访问。

{ 
    5: 'my first product',
    7: 'my second product'
}

强制 javascript 键整数用 null 填充数组

您正在声明一个空数组,然后将值设置为数组中的第 6 和第 8 个元素。这会将其他元素的值保留为 null。

如果您不打算将项目push数组中,即使用对象。像这样,

var obj = {};
obj[5] = "my first product";
obj[7] = "my second product";

这意味着创建的对象是:

obj = {"5":"我的第一个产品","7":"我的第二个产品"}

var arr = []
arr[5] = 'my first product';
arr[7] = 'my second product';
let result = arr.filter(ar => ar  != null);
console.log(result);

相关内容

  • 没有找到相关文章

最新更新