假設PackInput是一個陣列輸入。
我想做的return是動態數量的物件,具體取決于輸入陣列PackInput的大小。
例如:如果PackInput是[4,5,6],那么我想為每個回傳三個物件 ItemID。
例如:return {... ItemID: 4 ...}, return {... ItemID: 5 ...}, return {... ItemID: 6 ...}。
我下面的當前代碼僅獲取陣列的第一項而不是全部,我不知道為什么。我已經為此轉動了很長時間,現在我撞到了墻上。我究竟做錯了什么?
for(let i = 0; i < PackInput.length; i ) {
return {
TimestampUTC: Date.now(),
Payload: {
ItemID : PackInput[i]
}
}
}
更新:
let array = PackInput.map((items) => ({
TimestampUTC: Date.now(),
Payload: {
ItemID : items
}
})
);
let objects = array.reduce(function(target, key, index) {
target[index] = key;
return target;
})
return objects;
uj5u.com熱心網友回復:
你可以使用map方法來實作你想要的
return PackInput.map((element) => ({
TimestampUTC: Date.now(),
Payload: {
ItemID : element
}
}))
return 陳述句結束函式的執行,并將控制權回傳給呼叫函式/上層范圍。
物件更新:
const object = PackInput.reduce(function(previousValue, currentValue, index) {
return {
...previousValue,
[index]: currentValue
}
}, {})
您需要提供一個空物件作為 reduce 函式的第二個引數。
uj5u.com熱心網友回復:
您可以回傳一個陣列/物件。問題是您return只能在函式中呼叫一次,并且一旦函式到達return它就會回傳到呼叫者范圍。您可以使用回圈創建陣列/物件,然后回傳最終值:
let array = [];
for(let i = 0; i < PackInput.length; i ) {
array.push({
TimestampUTC: Date.now(),
Payload: {
ItemID : PackInput[i]
}
});
}
return array;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480275.html
標籤:javascript 节点.js 调试
