簡體   English   中英

一行推送項數組和返回項

[英]One line push item array and return item

我有這個:

  getReadableStream() {
    const readableStream = new Readable({
      read(size) {
        return false;
      }
    });
    this.readableStreams.push(readableStream);
    return readableStream;
  }

但是,如果我可以推送到數組並在同一調用中返回該項目,那就很好了,我正在尋找這個:

 getReadableStream() {
    return this.readableStreams.push(new Readable({
      read(size) {
        return false;
      }
    }));
  }

但是Array.prototype.push當然不會返回被推送的項目。 用JavaScript可以做到這一點嗎? 理想情況下,我不想創建一個新數組,保留原始數組。

如果要在一行中執行此操作,則可以使用逗號運算符

return this.readableStreams.push(readableStream), readableStream;

一個丑陋的解決方案是重寫Arrays原型:

Array.prototype.pushAndReturn = function(el){
  this.push(el);
  return el;
};

所以你可以做

return readableStreams.pushAndReturn(new Readable())

或者,只需創建一個助手:

const push = (arr, el) => arr.push(el) && el;

因此,您可以執行以下操作:

return push(readableStreams, new Readable())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM