javascript - 如何映射键/值数组而不是对象
问题描述
我需要从某些表单中获取一些值,因此当我需要从表单中调用特定值时,我想调用数组中的特定键。但是Array.prototype.map
创建一个索引为 (0, 1, 2) 的对象,然后存储键/值,因此我无法在不知道索引的情况下访问特定值。
我尝试了 array.push() 以及这里的函数,这似乎太多了,因为我知道有一种更简单的方法。
let extraClassArray = licenseClass
.map( ( i, e ) => {
if ( '' != $( e ).val() && e.hasAttribute( 'required' ) ) {
let id = $( e ).data( 'parent' );
let obj = {};
switch ( $( e ).val() ) {
case 'A':
obj.A =
'1' ===
$( '#license-class-' + id )
.find( '#license-class-' + id + '-a-value:checked' )
.val() ?
'1' :
'0';
break;
case 'A2':
obj.A2 =
'1' ===
$( '#license-class-' + id )
.find( '#license-class-' + id + '-a2-value:checked' )
.val() ?
'1' :
'0';
break;
case 'B':
obj.BF17 =
'1' ===
$( '#license-class-' + id )
.find(
'#license-class-' + id + '-bf17-value:checked'
)
.val() ?
'1' :
'0';
break;
default:
break;
}
return obj;
}
})
.get();
console.log(extraClassArray);
例如,我希望能够进行校准extraClassArrat['A']
以获取值 0 或 1。
解决方案
您可以使用一个简单的 javascript 对象:
var obj = {
key1: value1,
key2: value2
};
添加这样的属性:
obj["key3"] = "value3";
并以这种方式获取您的价值观:
var getProperty = function (propertyName) {
return obj[propertyName];
};
getProperty("key1");
getProperty("key2");
getProperty("key3");
推荐阅读
- c# - 在 Unity 上更新 Nuget 时会抛出 500,并带有“确保控制器具有无参数的公共构造函数。”,
- c - 带有字符串的 Scanf() 函数
- django - 如何过滤子集合的最后一项?
- python - 无法通过 Python 发送电子邮件
- python - datashader xarray.Image 到 holoviews 点
- unix - What does terminal / hyperterm display in the tab title? Is it possible to customize this?
- mysql - Mysqli 从给定值在任何列中的行中获取多个不同的值
- c# - 通过异步示例了解 C# 中的并行编程
- dynamics-crm - 如何在不将其授予用户的情况下授予工作流权限?
- node.js - 数据湖 AWS 无服务器 Amazon S3