Doing a “Diff” on an Associative Array in javascript / jQuery?

前端 未结 5 1178
無奈伤痛
無奈伤痛 2020-12-18 04:03

If I have two associative arrays, what would be the most efficient way of doing a diff against their values?

For example, given:

  array1 = {
    for         


        
5条回答
  •  攒了一身酷
    2020-12-18 04:56

    A minha ficou assim:

    function diff(obj1, obj2){
    
    var result = {};
    
    for(var key1 in obj1){
    
        let resposta =  {
            before : obj1[key1] ? obj1[key1] : '',
            after  : obj2[key1] ? obj2[key1] : ''
        };
    
        if(resposta.before !== resposta.after){
    
            result[key1] = resposta;
        }
    }
    
    for(var key2 in obj2){
    
        if(!(key2 in result) || (key2 in obj1)){
    
            let resposta = {
                before : obj1[key2] ? obj1[key2] : '', 
                after  : obj2[key2] ? obj2[key2] : ''
            }
    
            if(resposta.before !== resposta.after){
    
                result[key2] = resposta;
            }
        }
    }
    
    return (Object.assign({}, result));
    }
    

提交回复
热议问题