如果项未定义,如何处理该情况



在一个array of objects中,我试图在另一个array of numbers的基础上创建一个新属性
问题是number of array少了一个元素,因此它在array of objects的最后一个索引中得到了undefined
如果新创建的属性是undefined,如何处理这种情况?参见下面的代码示例

const sortArr = [3, 2, 1];
const items= [
{
a: 1,
},
{
a: 2,
},
{
a: 3,
},
{
a: 4,
},
];
const res =
items.map((item, idx) => ({
...item,
sortItem:sortArr[idx]
}));

console.log(res)

如果它是数组中的最后一个,则不显示任何内容/空字符串

如果sortArr[inx]不存在,要使用空字符串作为回退,请使用Nullish合并运算符(??(运算符:

sortItem: sortArr[idx] ?? ''

const sortArr = [3, 2, 1];
const items= [{a: 1, }, {a: 2, }, {a: 3, }, {a: 4, }, ];
const res = items.map((item, idx) => (
{
...item,
sortItem: sortArr[idx] ?? ''
}
));
console.log(res)

您可以根据idx是否小于sortArr.length 来设置sortItem

sortItem: idx < sortArr.length ? sortArr[idx] : "no element at that position"

最新更新