【发布时间】:2019-11-07 00:06:20
【问题描述】:
我需要从某些表单中获取一些值,因此当我需要从表单中调用特定值时,我想调用数组中的特定键。但是Array.prototype.map 创建了一个索引为 (0, 1, 2) 的对象,然后存储了键/值,因此我无法在不知道索引的情况下访问特定值。
我尝试了 array.push() 以及来自 here 的函数,这似乎太多了,因为我知道有一个更简单的方法。
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。
【问题讨论】:
-
你映射的是什么数组?看起来您的问题缺少一些重要的代码。请阅读如何创建Minimal, Complete, Reproducible Example。
-
@Daan 我在选择选项更改时映射来自不同复选框的值。
-
使用
let obj = {};,而不是[]。 -
@Bergi 这是我使用 {} 的错字。据我所知,[] 返回和空数组。
标签: javascript jquery arrays object array.prototype.map