我想要比较两个数组,并用相同的属性值替换数组的值。
let first_array =[{ model: 'aa', size: '85(XS)', count: 200, number: '10-2' },{ model: 'bb', size: '105(XL)', count: 150, number: '' },{ model: 'cc', size: '95(M)', count: 100, number: '9-2' },{ model: 'dd', size: '85(XS)', count: 50, number: '' }]
let second_array = [{ model: 'aa', size: '85(XS)', count: 1, number: '' },{ model: 'bb', size: '105(XL)', count: 1, number: '' },{ model: 'cc', size: '95(M)', count: 2, number: '' },{ model: 'dd', size: '85(S)', count: 3, number: '' },{ model: 'dd', size: '80(XS)', count: , number: '' }]
假设有两个数组。比较'a‘和'b’数组,与'model‘相同的'size’将'a‘数组的计数值插入到'b’数组的计数值中,错误的被标记为null。
这就是我想要的。
let vlaue = [{ model: 'aa', size: '85(XS)', count: 200, number: '10-2' },{ model: 'bb', size: '105(XL)', count: 150, number: '' },{ model: 'cc', size: '95(M)', count: 100, number: '9-2' },{ model: 'dd', size: '85(XS)', count: 50, number: '' }]
这就是我试过的代码。
for (var j = 0; j<second_array.length;j++){
for(var i = 0; i < first_array.length ;i++){
var count = false
if(second_array[j]["model"]+second_array[j]["size"] === first_array[i]){
count = true
}else{
count = false
}
if(count == true){
if(objectdata[first_array[i]]["count"] === 0){
second_array[j]["count"] = ""
second_array[j]["number"] = ""
}else{
second_array[j]["count"] = objectdata[first_array[i]]["count"];
second_array[j]["number"] = objectdata[first_array[i]]["number"];
}
break
}else{
second_array[j]["count"] = ""
second_array[j]["number"] = ""
}
}}
发布于 2021-07-05 14:40:31
let first_array =[{ model: 'aa', size: '85(XS)', count: 200, number: '10-2' },{ model: 'bb', size: '105(XL)', count: 150, number: '' },{ model: 'cc', size: '95(M)', count: 100, number: '9-2' },{ model: 'dd', size: '85(XS)', count: 50, number: '' }]
let second_array = [{ model: 'aa', size: '85(XS)', count: 1, number: '' },{ model: 'bb', size: '105(XL)', count: 1, number: '' },{ model: 'cc', size: '95(M)', count: 2, number: '' },{ model: 'dd', size: '85(S)', count: 3, number: '1' }]
let value=[];
for(let i = 0 ; i<first_array.length ; i++){
value.push({
name:first_array[i].model ? first_array[i].model :second_array[i].model,
size: first_array[i].size ?first_array[i].size :second_array[i].size,
count: first_array[i].count ?first_array[i].count :second_array[i].count,
number: first_array[i].number ?first_array[i].number :second_array[i].number,
})
}
console.log(value)
let first_array =[{ model: 'aa', size: '85(XS)', count: 200, number: '10-2' },{ model: 'bb', size: '105(XL)', count: 150, number: '' },{ model: 'cc', size: '95(M)', count: 100, number: '9-2' },{ model: 'dd', size: '85(XS)', count: 50, number: '' }]
let second_array = [{ model: 'aa', size: '85(XS)', count: 1, number: '' },{ model: 'bb', size: '105(XL)', count: 1, number: '' },{ model: 'cc', size: '95(M)', count: 2, number: '' },{ model: 'dd', size: '85(S)', count: 3, number: '1' }]
let value=[];
for(let i = 0 ; i<first_array.length ; i++){
value.push({
name:first_array[i].model ? first_array[i].model :second_array[i].model,
size: first_array[i].size ?first_array[i].size :second_array[i].size,
count: first_array[i].count ?first_array[i].count :second_array[i].count,
number: first_array[i].number ?first_array[i].number :second_array[i].number,
})
}
console.log(value)
发布于 2021-07-05 15:07:46
let first_array = [{
model: 'aa',
size: '85(XS)',
count: 200,
number: '10-2'
}, {
model: 'bb',
size: '105(XL)',
count: 150,
number: ''
}, {
model: 'cc',
size: '95(M)',
count: 100,
number: '9-2'
}, {
model: 'dd',
size: '85(XS)',
count: 50,
number: ''
}]
let second_array = [{
model: 'aa',
size: '85(XS)',
count: 1,
number: ''
}, {
model: 'bb',
size: '105(XL)',
count: 1,
number: ''
}, {
model: 'cc',
size: '95(M)',
count: 2,
number: ''
}, {
model: 'dd',
size: '85(S)',
count: 3,
number: ''
}, {
model: 'dd',
size: '80(XS)',
count: '',
number: ''
}]
let desired = [{
model: 'aa',
size: '85(XS)',
count: 200,
number: '10-2'
},
{
model: 'bb',
size: '105(XL)',
count: 150,
number: ''
},
{
model: 'cc',
size: '95(M)',
count: 100,
number: '9-2'
},
{
model: 'dd',
size: '85(XS)',
count: 50,
number: ''
}
]
const dict = second_array.reduce((map, {
model,
size,
count,
number
}) => ({
...map,
[`${model}${size}`]: {
count,
number
}
}), {})
const newArray = first_array.map(({
model,
size,
count,
number
}) => ({
model,
size,
count: count ?? dict[`${model}${size}`]?.count,
number: number ?? dict[`${model}${size}`]?.number,
}))
// output:
console.log(newArray)
// desired:
console.log(desired)
// match:
console.log(JSON.stringify(newArray) === JSON.stringify(desired))
https://stackoverflow.com/questions/68251190
复制相似问题