gpt4 book ai didi

javascript - 以编程方式选择javascript中对象的属性

转载 作者:行者123 更新时间:2023-11-30 17:40:56 27 4
gpt4 key购买 nike

当我用 date_narrow(pdb, "datepub", "1980", "2000") 调用这个函数时,我预计返回的计数是 2,而 pdb[0].selected 是设置为假。相反,我的调试器显示 arr[k].dfield 始终未定义,而我希望它是 pdb[k].datepub。也就是说,我试图在运行时选择对象 arr[k] 的属性。关于如何正确执行此操作的任何建议?

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
}];

最佳答案

在 JavaScript 中,数组语法 (obj[...]) 也适用于通过名称访问对象的属性:

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);
};

Demonstration

关于javascript - 以编程方式选择javascript中对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102913/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com