kleinBlue. 2021-09-18 09:38
浏览 28
已结题

微信小程序 JS 判断两个对象中指定数据是否相等,并以对象的形式存储到一个数组中(数组对象)



```javascript
let oldData = [
{ id: 1, price: 100, skuid: 233 },
{ id: 2, price: 200, skuid: 2311 },
{ id: 3, price: 300, skuid: 312 },
{ id: 4, price: 180, skuid: 23342 }
]

let newData = [
{ price: 136, skuid: 312 },
{ price: 195, skuid: 233 },
{ price: 155, skuid: 2311 }
]

let priceChange = []

一  双for循环判断

for (let i = 0; i < newData.length; i++) {
     for (let j = 0; j < oldData.length; j++) {
         if(newData[i].skuid == oldData[j].skuid){
            priceChange.push({
                'id':oldData[j].id,
                'price':newData[i].price,
                'skuid':newData[i].skuid
            })
         }
     }
 }
 console.log(priceChange);

输出

img


二  obj.filter(),返回一符合要求的数组

for (let i in oldData) {
    let old_skuid = oldData[i].skuid
    if (i != oldData.length - 1) {
        let res = newData.filter(item => {
            return item.skuid == old_skuid
        })
        priceChange.push({
            'skuid':res[0].skuid,
            'price':res[0].price
        })
    }
}
console.log('priceChange',priceChange);

输出

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月26日
    • 创建了问题 9月18日

    悬赏问题

    • ¥15 逻辑谓词和消解原理的运用
    • ¥15 请求分析基于spring boot+vue的前后端分离的项目
    • ¥15 三菱伺服电机按启动按钮有使能但不动作
    • ¥15 js,页面2返回页面1时定位进入的设备
    • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?