【问题标题】:How to pass a loop counter as an object property [duplicate]如何将循环计数器作为对象属性传递[重复]
【发布时间】:2014-08-14 14:41:41
【问题描述】:

我正在尝试添加一个 id 作为对象属性,但我一定遗漏了一些重要的东西。

function appendData(products) {
var i = 0;
var productsPromises = products.map(function(product) {
    i++;
    var title = product['title'];
    var stock = product['stock'];
    var price = product['price'];
    var write = {Titulo: title, i: {Stock: stock, Price: price, date: date}};
    var readFiles = fs.readFile('./XXXXX/' + i, 'utf8', function(err, data){
        if (err) {
            console.log(err);
        }
        console.log(data);
    });


});
return Promise.all(productsPromises);
};

【问题讨论】:

  • Promise.all 确实期望 promises 数组作为其参数。您的映射函数甚至不返回任何内容。
  • 您实际上在哪里使用代码中的write 值?

标签: javascript node.js loops object properties


【解决方案1】:

你不能在 JavaScript 对象字面量中做到这一点。创建对象,然后将属性添加为单独的语句:

var write = {Titulo: title };
write[i] = {Stock: stock, Price: price, date: date};

还要注意.map() 会将数组索引作为第二个参数传递给您的回调函数,因此您不必维护自己的计数器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2020-06-02
    • 1970-01-01
    相关资源
    最近更新 更多