在一个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"