循环并比较javascript对象

循环并比较javascript对象,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我有两个数组,它们是根据用户的输入创建的,如下所示: var impArray = []; $('[id^=imp]').on('change', function(){ var value = $(this).val(); var name = ($(this).attr('name').replace('imp-','')) impArray[name] = value; console.log(impArray); }) var assessArray=

我有两个数组,它们是根据用户的输入创建的,如下所示:

var impArray = [];
$('[id^=imp]').on('change', function(){
    var value = $(this).val();
    var name = ($(this).attr('name').replace('imp-',''))
    impArray[name] = value;
    console.log(impArray);
})

var assessArray= [];
$('[id^=assess]').on('change', function(){
    var value = $(this).val();
    var name = ($(this).attr('name').replace('assess-',''))
    assessArray[name] = value;
    console.log(assessArray);
})
这些创建的数组类似于

assessAray
    1-1: 10
    1-2: 15
    1-3: 9

impArray
    1-1: 6
    1-2: 14
    1-3: 2
然后,我需要使用匹配的键进行简单计算,如:

$('#comp-1-1').val(impArray['1-1'] / assessArray['1-1'] * 100);
显然我不能对每个人都这么做所以

问题:我如何循环遍历数组并根据键比较它们,然后对它们的值进行处理?

这对您有帮助吗

$.each(impArray, function(index, value){
  var result = assessArray[index] / value * 100;
  $('#comp-1-'+index).val(result);
});
尝试使用
$。each()
,例如:

$.each(impArray, function(i, v){
  $('#comp-'+i).val(v/assessArray[i]*100);
});

如果两个数组的长度始终相同,并且对象属性位于同一索引处,则这应该可以工作:

assessArray=[{'1-1':'10'},{'1-2':'15'},{'1-3':'9'}];
impArray=[{'1-1':'6'},{'1-2':'14'},{'1-3':'2'}];
对于(var i=0;i

Array.prototype.indexOfProp=函数(属性){
for(var i=0,len=this.length;i对于(var i=0;i技术上来说,您使用的是JavaScript对象,而不是数组。您的变量声明实际上应该是:

var impArray = {};
var assessArray = {};
一旦有了正确的变量声明,就可以使用来迭代键(而不是索引):


应该是
value/assessArray[index]
,和
$(“#comp-”+index)
$.each(impArray, function(key, value){
  $('#comp-'+key).val(assessArray[key]/value*100);
});