gpt4 book ai didi

javascript - 使用泛型方法访问对象值

转载 作者:行者123 更新时间:2023-11-30 15:39:39 24 4
gpt4 key购买 nike

我正在进行一些重构并尝试创建一个通用方法,该方法能够使用对象数据填充给定的下拉列表。但是,我遇到了一个关于如何使访问不同对象数据通用的问题。例如:

原始方法

function populateDropdown(element, data) {
for (var i = 0; i < data.length; i++)
element.append('<option value=' + data[i].ID + '>' + data[i].Name + '</option>');
}

如果给定的对象数组具有字段 IDName,则此方法有效。我想要实现的是这样的

function populateDropdown(element, data, valueField, dataField) {
for (var i = 0; i < data.length; i++)
element.append('<option value=' + data[i].valueField + '>' + data[i].dataField + '</option>');
}

当我尝试像这样调用此方法时,结果是 Undefined:populateDropdown($('#myDropdown'), dataArray, "ID", "DataType") ;

当我尝试不使用 "" 时,我收到一个控制台错误,提示未定义 IDDataType。有没有办法告诉我的方法我想从对象中获取哪些字段?

最佳答案

使用bracket notation -

function populateDropdown(element, data, valueField, dataField) {
for (var i = 0; i < data.length; i++)
element.append('<option value=' + data[i][valueField] + '>' + data[i][dataField] + '</option>');
}

注意 - 为了使它对属性值中的特殊字符更具弹性,我会这样做:

$('<option />', { value : data[i][valueField] }).text(data[i][dataField]).appendTo(element);

关于javascript - 使用泛型方法访问对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41022006/

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