Javascript 向不同的函数发送不同的对象值

Javascript 向不同的函数发送不同的对象值,javascript,Javascript,我有下面的代码。我想发送value1的值 n.value1s = new Array(); n.value1sIDs = new Array(); n.value1sNames = new Array(); n.value1sColors = new Array(); n.descriptions = new Array(); 到 对于值2至pg.loadLinkedvalue2s(n) 我如何在javascript中做到这一点而不必重写完整的函数 请参阅下面的代码

我有下面的代码。我想发送value1的值

n.value1s = new Array();  
n.value1sIDs = new Array();  
n.value1sNames = new Array();  
n.value1sColors = new Array();  
n.descriptions = new Array();  

对于值2至pg.loadLinkedvalue2s(n)
我如何在javascript中做到这一点而不必重写完整的函数
请参阅下面的代码

    if(n.id == "row"){  
        n.rs = n.parentElement;  
        if(n.rs.multiSelect == 0){  
            n.selected = 1;  
            this.selectedRows = [ n ];  
            if(this.lastClicked && this.lastClicked != n){  
                selectionChanged = 1;  
                this.lastClicked.selected = 0;  
                this.lastClicked.style.color = "000099";  
                this.lastClicked.style.backgroundColor = "";  
            }  
        } else {  
            n.selected = n.selected ? 0 : 1;  
            this.getSelectedRows();  
        }  
        this.lastClicked = n;  


            n.value1s = new Array();  
            n.value1sIDs = new Array();  
            n.value1sNames = new Array();  
            n.value1sColors = new Array();  
            n.descriptions = new Array();  
            n.value2s = new Array();  
            n.value2IDs = new Array();  
            n.value2Names = new Array();  
            n.value2Colors = new Array();  
            n.value2SortOrders = new Array();  
            n.value2Descriptions = new Array();     
    var value1s = myOfficeFunction.DOMArray(n.all.value1s.all.value1);    
    var value2s = myOfficeFunction.DOMArray(n.all.value1s.all.value2);   

            for(var i=0,j=0,k=1;i<vaue1s.length;i++){  

                n.sortOrders[j] = k++;  
                n.vaue1s[j] = vaue1s[i].v;  
                n.vaue1IDs[j] = vaue1s[i].i;  
                n.vaue1Colors[j] = vaue1s[i].c;  
                alert(n.vaue1Colors[j]);  

    var vals = vaue1s[i].innerText.split(String.fromCharCode(127));       

                n.cptSortOrders[j] = k++;  
                n.value2s[j] = value2s[i].v;  
                n.value2IDs[j] = value2s[i].i;  
                n.value2Colors[j] = value2s[i].c;       
var value2Vals =  value2s[i].innerText.split(String.fromCharCode(127));    

                if(vals.length == 2){  
                    alert(n.vaue1Colors[j]);    
                    n.vaue1Names[j] = vals[0];  
                    n.descriptions[j++] = vals[1];  

                }   

                if(value2Vals.length == 2){  

            n.value2Names[j] = cptVals[0];    
                    alert(n.value2Names[j]);       
        n.cptDescriptions[j++] = cptVals[1];     
            alert(n.cptDescriptions[j++]);    
                }                 

            }


         //want to run this with value1 only
                pg.loadLinkedvalue1s(n);  

                // want to run this with value2 only  
                pg.loadLinkedvalue2s(n);      


    }  
if(n.id==“行”){
n、 rs=n.parentElement;
如果(n.rs.multiSelect==0){
n、 所选=1;
this.selectedRows=[n];
如果(this.lastClicked&&this.lastClicked!=n){
selectionChanged=1;
this.lastClicked.selected=0;
this.lastClicked.style.color=“000099”;
this.lastClicked.style.backgroundColor=“”;
}  
}否则{
n、 所选=n。所选?0:1;
这个.getSelectedRows();
}  
this.lastClicked=n;
n、 value1s=新数组();
n、 value1sIDs=新数组();
n、 value1sNames=新数组();
n、 value1sColors=新数组();
n、 descriptions=新数组();
n、 value2s=新数组();
n、 value2IDs=新数组();
n、 value2Names=新数组();
n、 value2Colors=新数组();
n、 value2SortOrders=新数组();
n、 value2Descriptions=新数组();
var value1s=myOfficeFunction.DOMArray(n.all.value1s.all.value1);
var value2s=myOfficeFunction.DOMArray(n.all.value1s.all.value2);
对于(var i=0,j=0,k=1;i
另外,我假设数组一起运行。这意味着
values[I]
colors[I]
相关。如果是这种情况,您可以使其更易于管理

function makeThing() {
  return {
    value: abc,
    id: 345,
    name: 'Cool Spiffy Thing',
    color: 'red'
  }
}

n.group1 = [];
n.group1.push(makeThing());
n.group1[0].name = 'Changed named here';

n.group1.push(makeThing());
n.group1.push(makeThing());

n.group2 = [makeThing()];

function loadLinkedValues(valueObjects) {
  for (var i=0; i < valueObjects.length; i++) {
    // do stuff with each object //
    console.log(valueObjects[i].name +'has a value of: '+ valueObjects[i].value);
  }
}

loadLinkedValues(n.group1);
函数makeThing(){
返回{
价值:abc,
id:345,
名字:“酷辣妹”,
颜色:“红色”
}
}
n、 第1组=[];
n、 组1.push(makeThing());
n、 group1[0]。名称='Changed named here';
n、 组1.push(makeThing());
n、 组1.push(makeThing());
n、 group2=[makeThing()];
函数LoadLinkedValue(valueObjects){
对于(变量i=0;i

因此,与一个数组上有一吨对象的单一对象不同,你有一个数组上有一吨对象。这些对象只是有属性。结果更容易概念化和维护,而且总体上更干净。

如果我理解正确,你正在大量地为具有相同后缀但不同前缀的属性赋值ixes。您可以创建一个函数:

function massAssign(obj, prefix, value) {
  obj[prefix + 's'] = value;
  obj[prefix + 'sID1'] = value;
  obj[prefix + 'sRandom'] = value;
}
然后这样称呼它:

massAssign(n, 'value1', []);

您不必编写
n.value1s=newarray();
(等),
n.value1s=[];
要短得多。
function massAssign(obj, prefix, value) {
  obj[prefix + 's'] = value;
  obj[prefix + 'sID1'] = value;
  obj[prefix + 'sRandom'] = value;
}
massAssign(n, 'value1', []);