我如何能够 return 基于用户输入数量的多个对象
How would I be able to return more than one object based on user input amount
假设 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;
您可以 return 一个 array/object。问题是您只能在函数中调用 return
一次,一旦函数达到 return
,它将 returned 到来电者范围。您可以使用循环创建 array/object 然后 return 最终值:
let array = [];
for(let i = 0; i < PackInput.length; i++) {
array.push({
TimestampUTC: Date.now(),
Payload: {
ItemID : PackInput[i]
}
});
}
return array;
你可以使用map的方法来实现你想要的
return PackInput.map((element) => ({
TimestampUTC: Date.now(),
Payload: {
ItemID : element
}
}))
return 语句结束函数的执行,return 控制调用 function/upper 作用域。
对象更新:
const object = PackInput.reduce(function(previousValue, currentValue, index) {
return {
...previousValue,
[index]: currentValue
}
}, {})
您需要提供一个空对象作为 reduce 函数的第二个参数。
假设 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;
您可以 return 一个 array/object。问题是您只能在函数中调用 return
一次,一旦函数达到 return
,它将 returned 到来电者范围。您可以使用循环创建 array/object 然后 return 最终值:
let array = [];
for(let i = 0; i < PackInput.length; i++) {
array.push({
TimestampUTC: Date.now(),
Payload: {
ItemID : PackInput[i]
}
});
}
return array;
你可以使用map的方法来实现你想要的
return PackInput.map((element) => ({
TimestampUTC: Date.now(),
Payload: {
ItemID : element
}
}))
return 语句结束函数的执行,return 控制调用 function/upper 作用域。
对象更新:
const object = PackInput.reduce(function(previousValue, currentValue, index) {
return {
...previousValue,
[index]: currentValue
}
}, {})
您需要提供一个空对象作为 reduce 函数的第二个参数。