Javascript 向不同的函数发送不同的对象值
我有下面的代码。我想发送value1的值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中做到这一点而不必重写完整的函数 请参阅下面的代码
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', []);