如何解决未定义的数组操作
这里可能是一个简单的方法,但只是想知道让这项工作发挥作用的最佳方法是什么。我目前将 purchaseUnitArray 的 console.log 设为未定义,我知道有些事情看起来不太对劲。我只想返回一个purchaseUnits 数组,每个都带有个人慈善机构non_profit id 和拆分金额。任何帮助都会很棒。谢谢!
const charities = [948,182,584];
const amount = 1000;
const splitPurchaseUnits = (nonprofit_id,amount) => {
const purchaseUnit = {
custom_id: `${nonprofit_id}`,amount: {
value: amount,currency_code: "USD",breakdown: {
item_total: {
currency_code: "USD",value: amount,},};
};
const purchaseUnitArray =
charities &&
charities.map((charity) => {
return splitPurchaseUnits(charity,amount / charities.length);
});
console.log(purchaseUnitArray,"array");
解决方法
尝试implicit return喜欢:
const charities = [948,182,584];
const amount = 1000;
const splitPurchaseUnits = (id) => ({
custom_id: id,amount: {
value: amount / charities.length,currency_code: 'USD',breakdown: {
item_total: {
currency_code: 'USD',value: amount,}
}
}
});
const purchaseUnitArray = charities.map(splitPurchaseUnits);
console.log(purchaseUnitArray)
看起来您没有在函数末尾返回 purchaseUnit
!你可以这样做:
return purchaseUnit;
或者改为:
return {
custom_id: nonprofit_id,// etc
}
(或像其他答案显示的那样完全删除返回)。
提醒一下,splitPurchaseUnits
的末尾似乎缺少一个括号。不确定创建问题时是否存在错误或意外。
您需要从函数 splitPurchaseUnits
返回一些值,否则由 JS 内部返回 undefined
。
const charities = [948,584];
const amount = 1000;
const splitPurchaseUnits = (nonprofit_id,amount) => {
const purchaseUnit = {
custom_id: `${nonprofit_id}`,amount: {
value: amount,currency_code: "USD",breakdown: {
item_total: {
currency_code: "USD",},};
return purchaseUnit;
};
const purchaseUnitArray =
charities &&
charities.map((charity) => {
return splitPurchaseUnits(charity,amount / charities.length);
});
console.log(purchaseUnitArray,"array");
我会这样做:
const charities = [948,584];
const amount = 1000;
const splitPurchaseUnits=(charities,amount)=>charities.map(nonprofit_id=>
({ custom_id: `${nonprofit_id}`,amount:
{ value: amount,breakdown:
{ item_total:
{ currency_code: 'USD',value: amount
} } } }))
console.log( splitPurchaseUnits(charities,amount) )
.as-console-wrapper {max-height: 100%!important;top:0;}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。