1
当我使用date_narrow(pdb, "datepub", "1980", "2000")
调用此函数时,我期望返回的计数为2,并且选择将pdb [0]。设置为false。相反,我的调试器显示arr [k] .dfield总是未定义的,而我希望它是pdb [k] .datepub。也就是说,我试图在运行时选择对象arr [k]的属性。有关如何正确执行此操作的任何建议?以编程方式在javascript中选择对象的属性
var date_narrow = function (arr, dfield, earlier_date, later_date) {
var count = 0;
for (var k = 0; k < arr.length; k++) {
if (arr[k].selected) {
// following are string comparisons
if ((arr[k].dfield < earlier_date) || (arr[k].dfield > later_date)) {
arr[k].selected = false;
} else {
count = count + 1;
}
}
}
return (count);
};
pdb = [{
datepub: "2012",
selected: true
}, {
datepub: "1999",
selected: true
}, {
datepub: "1980",
selected: true
}];
该工程,谢谢。我认为,只要dfield是一个合法的javascript名称而不是保留字的字符串,arr [k] .dfield的含义与arr [k] [dfield]相同,并且更易于阅读。显然他们不是这个意思。你可以解释吗? – user1416227
@ user1416227他们的意思是不同的东西。 'x.prop'表示'从对象'x''获得名为'prop'的属性,而'x [prop]'表示'获得名为'prop'的变量的值,然后获得对象'x'的属性它具有该名称(或数组索引)“。 –