【发布时间】:2021-11-01 18:34:44
【问题描述】:
我有 2 个对象数组,分别命名为 ProductColor、Profile,这两个数组的共同值是 fieldname,这里我想要完成的是创建一个单独的数组,其中包含很少的元素数组,下面是详细数组和预期数组
array1
var Profiles = [
{
fieldname: 'Black',
filename: 'Blackcolor1630667241215.JPEG',
},
{
fieldname: 'Black',
filename: 'Blackcolor1630667241217.JPEG',
},
{
fieldname: 'White',
filename: 'Whitecolor1630667241218.JPEG',
},
{
fieldname: 'White',
filename: 'Whitecolor1630667241219.JPEG',
}
]
array2
var productimg = [{
keyId: 0,
objId: 0,
fieldname: 'Black'
},
{
keyId: 1,
objId: 0,
fieldname: 'Black'
},
{
keyId: 0,
objId: 1,
fieldname: 'White'
},
{
keyId: 1,
objId: 1,
fieldname: 'White'
}]
试过
const finalImgset = [];
Profiles.map((val) =>{
productimg.map((img) =>{
console.log(val.fieldname, img.fieldname);
if(val.fieldname == img.fieldname){
finalImgset.push({
src: val.filename,
objkey: img.objId,
keyId: img.keyId,
})
}
})
})
但这并没有按预期工作,这是我的预期输出
var finalarray = [
{
filename: 'Blackcolor1630667241215.JPEG',
keyId: 0,
objId: 0,
fieldname: 'Black'
},
{
filename: 'Blackcolor1630667241217.JPEG',
keyId: 1,
objId: 0,
fieldname: 'Black'
},
{
filename: 'Whitecolor1630667241218.JPEG',
keyId: 0,
objId: 1,
fieldname: 'White'
},
{
filename: 'Whitecolor1630667241219.JPEG',
keyId: 1,
objId: 1,
fieldname: 'White'
}]
任何帮助都是非常感谢的建议,
【问题讨论】:
-
原始数据中的文件名与预期输出不匹配。这是故意的吗?我是不是误会了?最后一个条目:
filename: 'Whitecolor1630667241219.JPEG'变为filename: 'Whitecolor1630667020772.JPEG' -
嗨@LaytonGB 我更新了我的阵列,请立即查看
-
both arrays common value is fieldname,但是fieldname不是唯一的,如果它们都具有相同的fieldname,你如何合并项目?
标签: javascript arrays json loops