如何从[type: string]: string类型对象中提取所有值组成数组
实现方案
你定义的是键类型为字符串、值类型为字符串的索引签名对象,提取所有值可以直接使用原生Object.values()静态方法。
对应你的示例代码实现:
const array: { [field: string]: string } = {}; array['someProperty1'] = 'value1' array['someProperty2'] = 'value2' // 提取所有值得到目标数组 const valueList = Object.values(array) console.log(valueList) // 输出:['value1', 'value2']
若你的实际数据外层有额外array属性包裹:
如果打印该变量时的结构为{ array: { someProperty1: 'value1', ... } },多取一层属性即可:
// 示例外层包裹结构 const data = { array: { someProperty1: 'value1', someProperty2: 'value2' } } const valueList = Object.values(data.array) console.log(valueList) // 输出:['value1', 'value2']
兼容旧环境的替代方案
如果运行环境不支持Object.values,可以用Object.keys遍历取值:
const valueList = Object.keys(array).map(key => array[key])
注:你当前使用
array作为对象的变量名容易引发歧义,建议根据业务场景调整为更合适的变量名,避免后续维护混淆。
内容的提问来源于stack exchange,提问作者Jijon
相关产品推荐
相关产品推荐

