Javascript地图对象值
javascript map object values
我有一个对象数组:
[{a:1;b:2},{a:3;b:4},{a:5;b:6},{a:7;b:8},{a:9;b:10}]
输入是a的值,比如1,我希望输出是对应的b的值,比如返回2。
我有一个简单的方法来遍历数组并返回结果。我想知道是否有更好的解决方案?例如,将数组映射到a的值的数组,并获得输入的索引,然后使用所获得的索引获得输出。
另一种解释是a的值是相同的,它们不是值,用例子来说明问题。
的例子:
INPUT: 1 OUTPUT:2
INPUT: 3 OUTPUT:4
INPUT: 5 OUTPUT:6
INPUT: 7 OUTPUT:8
我的代码是这样的:
var test=function(obj){
var a=obj.map(function(item){
return item.a;
})
return obj[a.indexof("1")].b;
}
您可以预处理对象数组以创建单个对象,该对象将保存a
的值作为键,b
的值作为对应值,Array.prototype.reduce
,如下所示
> var d = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}, {a: 9, b: 10}];
undefined
> var lookup = d.reduce(function (result, currentObject) {
... result[currentObject.a] = currentObject.b;
... return result;
... }, {});
undefined
> lookup
{ '1': 2, '3': 4, '5': 6, '7': 8, '9': 10 }
那么您可以从lookup
中获得与数字相对应的值,如下所示
> lookup[5]
6
> lookup[9]
10
如果您要查找的值不存在于lookup
中,您将得到undefined
。
> lookup[11]
undefined
这是您想要的。但是,当数组中有更多的对象与a
匹配指针时,您需要考虑可能的情况。
function getBbyA(input, needle) {
for (var index in input) {
if (input[index].a === needle) {
return input[index].b;
}
}
return null;
}
var arr = [{a:1,b:2},{a:3,b:4},{a:5,b:6},{a:7,b:8},{a:9,b:10}];
function getIt(num){
return arr.filter(function(item){
return item.a === num;
}).pop().b
}
alert(getIt(5));
我觉得这很好
var obj = [{a:1,b:2},{a:3,b:4},{a:5,b:6},{a:7,b:8},{a:9,b:10}];
function get_it(_v){
for(x=0;x<obj.length;x++) if(obj[x].a == _v) return obj[x].b;
}
console.log(get_it(prompt('Insert your number:')));
相关文章:
- Html地图对象-点击地图获取id的一部分
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 为什么纬度结果对象从谷歌地图 API 更改
- 地图如何在 Ecmascript 6 中使用对象键工作
- 使用 FileReader 加载 CSV 以创建地图标记的 JS 对象 (地图 API)
- 热门访问谷歌地图对象以获取LatLngToPoint
- 如何通过使用谷歌地图从文本字段提交来修改javascript对象中的数据
- 当点击处理程序添加到谷歌地图圆圈标记时,无法访问对象数据
- 谷歌地图数据类型抛出类型错误:can't将未定义转换为对象
- javascript/谷歌地图:将位置对象转换为字符串
- 谷歌地图-来自VB.Net的JSON对象标记
- Angular 2 和谷歌地图 API.从组件操作映射的对象
- 未捕获的类型错误:对象不是谷歌地图上的函数
- 如何使用google.maps.Rectangle对象在谷歌地图上绘制选择/边界框/矩形,并检查标记是否落在其中
- 反应谷歌地图节点模块映射样式加载空对象,而不是JSON
- 如何访问放置在谷歌地图上的geoJSON数据中的数据对象
- 谷歌地图 api v3,“对象 #<对象> 没有方法'setValues' 错误
- 放大/缩小时,在地图上保持 D3 对象大小不变
- 谷歌地图标记和JSON对象