javascript - 将字符串转换为键值对数组
问题描述
我正在阅读复选框名称和值。如果部分被执行,则有两个复选框,如果单个复选框,则 else 块将被执行。
if (Array.isArray(b.name)) {
b.options = b.name.map(function(v, i) {
return [v, b.value[i]];
});
} else {
b.options = b.name.map(function(v, i) {
return [v, b.value[i]];
});
}
在上面的代码中,如果块只有在有多个值时才会被执行,并且它工作正常,因为我们有一个数组。
name = Spine
但value = Spine Value
在以下情况下:
这里的 else 部分将从上面的代码片段中执行。但是这里它返回一个错误,说b.name.map is not a function
.
如何将此字符串转换为类似于 if 块的数组。
到目前为止,在 else 块中尝试过:
b.options = $.each(function(v, i) {
return [b.name, b.value];
});
$.each({name: b.name, value: b.value}, function(k, v) {
b.options = (k + "" + v);
});
解决方案
如果 b.name 有长度属性,你可以使用 'call'
if(Array.isArray(b.name)){
b.options = Array.prototype.map.call(b.name,function(v,i) {
return [v, b.value[i]];
})
}else{
b.options = Array.prototype.map.call(b.name,function(v,i) {
return [v, b.value[i]];
})
}
推荐阅读
- postgresql - 当我在 PostgreSQL 中使用 \d+ TABLE 命令时,输出换行
- canvas - 如何使此画布文本响应
- javascript - 应用于 ngFor 的 stringLowerCase 过滤器
- opengl - 荧光笔混合功能 OpenGL
- java - Android Studio Volley 登录并保存登录信息
- sql - oracle全文搜索中的条件组合
- c# - unity Game Center 登录对话框取消后不再显示
- java - 如何为soap https调用配置java keystore和trustore
- java - 在 java android studio 中格式化 sql 日期时间
- javascript - C++ 到 javascript 的转换