弄清楚如何将动态变量设置为 push、indexOf 等函数的问题
problems to figure out how to set dynamic variables to functions like push, indexOf
如何在函数上设置动态变量?如果您尝试 运行 您可以看到的截断版本,输出只是一个点。我还尝试查看代码内部,然后查看 return 值未定义。我也尝试过 window[${which_section}
],但我是初学者,不知道该如何处理。谢谢
var Nr22_objectarray_1 = [ {name: "fruit", species: "apple"},
{name: "miau", species: "cat"},
{name: "omeprazol", species: "medicine"},
];
var Nr22_objectarray_2 = [ {name: "fruit", species: "orange"},
{name: "miauzi", species: "cat"},
{name: "ezomeprazol", species: "medicine"},
];
var Nr22_objectarray_3 = [ {name: "fruit", species: "banana"},
{name: "miau", species: "cat"},
{name: "nivea", species: "cream"},
];
function Nr22_reduceDuplicatesOnObjectArrays (which_array, which_section) {
let tester = which_array.reduce(function (a, b){
if ( a.indexOf(b.which_section) < 0 ) {
// which_section = name
a.push(b.which_section);
}
//a = undefined
return a;
}, []);
tester.sort();
return tester.join(", ") + ".";
}
let Nr22_array_new = [];
Nr22_array_new = Nr22_objectarray_1.concat(Nr22_objectarray_2,
Nr22_objectarray_3);
let Nr22_uniq = Nr22_reduceDuplicatesOnObjectArrays(Nr22_array_new, "name");
document.write(Nr22_uniq);
我认为您尝试使用的是 []
语法。您可以使用它根据字符串提供的 属性 名称访问对象的 属性。
const which_section="name";
const b = {name: 'miauzi'};
console.log(b[which_section]); //=> miauzi
var Nr22_objectarray_1 = [{
name: "fruit",
species: "apple"
},
{
name: "miau",
species: "cat"
},
{
name: "omeprazol",
species: "medicine"
},
];
var Nr22_objectarray_2 = [{
name: "fruit",
species: "orange"
},
{
name: "miauzi",
species: "cat"
},
{
name: "ezomeprazol",
species: "medicine"
},
];
var Nr22_objectarray_3 = [{
name: "fruit",
species: "banana"
},
{
name: "miau",
species: "cat"
},
{
name: "nivea",
species: "cream"
},
];
function Nr22_reduceDuplicatesOnObjectArrays(which_array, which_section) {
let tester = which_array.reduce(function(a, b) {
if (a.indexOf(b[which_section]) < 0) {
// which_section = name
a.push(b[which_section]);
}
//a = undefined
return a;
}, []);
tester.sort();
return tester.join(", ") + ".";
}
let Nr22_array_new = [];
Nr22_array_new = Nr22_objectarray_1.concat(Nr22_objectarray_2,
Nr22_objectarray_3);
let Nr22_uniq = Nr22_reduceDuplicatesOnObjectArrays(Nr22_array_new, "name");
document.write(Nr22_uniq);
如何在函数上设置动态变量?如果您尝试 运行 您可以看到的截断版本,输出只是一个点。我还尝试查看代码内部,然后查看 return 值未定义。我也尝试过 window[${which_section}
],但我是初学者,不知道该如何处理。谢谢
var Nr22_objectarray_1 = [ {name: "fruit", species: "apple"},
{name: "miau", species: "cat"},
{name: "omeprazol", species: "medicine"},
];
var Nr22_objectarray_2 = [ {name: "fruit", species: "orange"},
{name: "miauzi", species: "cat"},
{name: "ezomeprazol", species: "medicine"},
];
var Nr22_objectarray_3 = [ {name: "fruit", species: "banana"},
{name: "miau", species: "cat"},
{name: "nivea", species: "cream"},
];
function Nr22_reduceDuplicatesOnObjectArrays (which_array, which_section) {
let tester = which_array.reduce(function (a, b){
if ( a.indexOf(b.which_section) < 0 ) {
// which_section = name
a.push(b.which_section);
}
//a = undefined
return a;
}, []);
tester.sort();
return tester.join(", ") + ".";
}
let Nr22_array_new = [];
Nr22_array_new = Nr22_objectarray_1.concat(Nr22_objectarray_2,
Nr22_objectarray_3);
let Nr22_uniq = Nr22_reduceDuplicatesOnObjectArrays(Nr22_array_new, "name");
document.write(Nr22_uniq);
我认为您尝试使用的是 []
语法。您可以使用它根据字符串提供的 属性 名称访问对象的 属性。
const which_section="name";
const b = {name: 'miauzi'};
console.log(b[which_section]); //=> miauzi
var Nr22_objectarray_1 = [{
name: "fruit",
species: "apple"
},
{
name: "miau",
species: "cat"
},
{
name: "omeprazol",
species: "medicine"
},
];
var Nr22_objectarray_2 = [{
name: "fruit",
species: "orange"
},
{
name: "miauzi",
species: "cat"
},
{
name: "ezomeprazol",
species: "medicine"
},
];
var Nr22_objectarray_3 = [{
name: "fruit",
species: "banana"
},
{
name: "miau",
species: "cat"
},
{
name: "nivea",
species: "cream"
},
];
function Nr22_reduceDuplicatesOnObjectArrays(which_array, which_section) {
let tester = which_array.reduce(function(a, b) {
if (a.indexOf(b[which_section]) < 0) {
// which_section = name
a.push(b[which_section]);
}
//a = undefined
return a;
}, []);
tester.sort();
return tester.join(", ") + ".";
}
let Nr22_array_new = [];
Nr22_array_new = Nr22_objectarray_1.concat(Nr22_objectarray_2,
Nr22_objectarray_3);
let Nr22_uniq = Nr22_reduceDuplicatesOnObjectArrays(Nr22_array_new, "name");
document.write(Nr22_uniq);