动态列名指通过变量而非固定字符串访问数据结构中的字段。
// 示例数据 const dataset = [ { id: 1, product: "手机", price: 2999 }, { id: 2, product: "电脑", price: 6999 } ]; // 动态查询函数 function dynamicQuery(data, columnName) { return data.map(item => item[columnName]); } // 调用示例 const targetColumn = "price"; console.log(dynamicQuery(dataset, targetColumn)); // 输出: [2999, 6999]
<?php $dataset = [ ["id" => 1, "product" => "手机", "price" => 2999], ["id" => 2, "product" => "电脑", "price" => 6999] ]; function dynamicQuery($data, $column) { return array_column($data, $column); } $targetCol = "product"; print_r(dynamicQuery($dataset, $targetCol)); // 输出: Array ( [0] => 手机 [1] => 电脑 ) ?>
dataset = [ {"id": 1, "product": "手机", "price": 2999}, {"id": 2, "product": "电脑", "price": 6999} ] def dynamic_query(data, column): return [item.get(column) for item in data] target_column = "id" print(dynamic_query(dataset, target_column)) # 输出: [1, 2]
const complexData = { user: { profile: { contacts: { email: "service@example.com" } } } }; const path = "user.profile.contacts.email"; const value = path.split('.').reduce((obj, key) => obj?.[key], complexData); console.log(value); // 输出: service@example.com
import sqlite3 def dynamic_sql_query(table, columns): conn = sqlite3.connect('demo.db') query = f"SELECT {','.join(columns)} FROM {table}" return conn.execute(query).fetchall() # 使用示例 selected_cols = ["name", "registration_date"] print(dynamic_sql_query("users", selected_cols))
if (columnName in item) { // 安全访问 }
undefined
或null
值动态列名操作通过灵活访问数据字段,显著提升了代码的适应性和复用性,开发时需注意边界条件处理和安全防护,推荐结合TypeScript等类型系统增强代码可靠性,实际应用中可根据具体需求选择最适合的实现方式。
参考资料:
[1] MDN Web Docs – 对象属性访问
[2] PHP官方文档 – array_column函数
[3] Python标准库 – sqlite3模块
[4] OWASP SQL注入防护指南