【发布时间】:2022-01-03 02:24:17
【问题描述】:
我有以下包含数百个对象的数组
const images = [
{
"name" : "sky",
"width" : "90",
"height" : "150",
"colours" : ["pink", "yellow", "red"],
"price": "64"
},
{
"name" : "old car",
"width" : "90",
"height" : "150",
"colours" : ["dark purple", "sand", "light green"],
"price": "35"
},
{
"name" : "landscape",
"width" : "90",
"height" : "150",
"colours" : ["dark blue", "violet"],
"price": "85"
},
{
"name" : "kitchen",
"width" : "90",
"height" : "150",
"colours" : ["red", "green"],
"price": "38"
},
...
]
我想创建一个只有 10 个对象和一些键/值对(名称、颜色、价格)的新数组。可以使用另一个数字数组作为索引来提取这 10 个对象。
这是一个包含索引的数组示例:
randomNum = [4,24,39,82,92,27,123,22,84,65]
新数组 - 预期结果 - 应该类似于此
data = [
{
name: "landscape",
colour: ["dark blue", "violet"],
price: "85"
},
{
name: "kitchen",
colour: ["red", "green"],
price: "38"
},
...
]
我正在尝试迭代
const finalList = []; //new array
let quizItem;
for (let i = 0; i < 10; i++) {
quizItem= images[randomNum[i]];
finalList.push({name: quizItem.name, colour: quizItem.colour, price: quizItem.price);
}
我收到一条错误消息...undefined is not an object (evaluating 'quizItem.name')
如果我只是使用quizList.push(quizItem);,它可以正常工作并创建一个新数组,其中只有 10 条记录,但所有对象的项(键/值对)与原始数组相同。
【问题讨论】:
-
请修复此问题 finalList.push({...);到 finalList.push({...});
-
这不是问题,只是这篇文章中的一种类型。
-
colour不会是quizItem的属性,但colours会。 -
您遇到的错误是否可重现?如果是,请提供代码 sn-p。
标签: javascript arrays javascript-objects