[英]Convert array of object to single object in javascript(Angularjs)
[英]Convert One field in an Object Array data with angularjs and Javascript to another value
在angularjs控制器中,我有以下代码:
var ysshControllers = angular.module('theControllers', []);
ysshControllers.controller('CommonController',
function($scope, $http, $route) {
$scope.dbKey = $route.current.customInput;
$scope.urlToDb = 'https://' + $scope.dbKey + '/.json';
$http.get($scope.urlToDb).success(function(data) {
var values = [];
for (var name in data) {
values.push(data[name]);
}
$scope.Items = values;
});
// Initially order by date and time
$scope.orderProp = 'ac';
}
);
它创建一个名为Items
的对象数组。 关键值只是标记为aa
, ab
, ac
等。当用户从下拉菜单中输入数据时,我只想保存诸如1,2,3,4,5
类的值,然后再将数据导入回去网站上,将值转换回去。 像0
= Bad
; 5
= Very Good
。 因此,对于每个键名称为ae
记录,我都希望将值从1,2,3,4,5转换为Bad,Okay,Fair,Good,Very Good。
我可以弄清楚程序流程,我想知道的是如何使用我猜想的面向对象的JavaScript来引用值。
数据的结构如下:
C5_200630_Option 1
aa:"Option 1"
ab:"Toyota"
ac:6499
ad:"Truck"
ae:"Tacoma, Silver, 1/2 ton 4wd"
af:4
我像这样运行代码:
alert(Object.keys($scope.UsedItems));
它的值为0,1,2,3,4
等。因此,我猜$scope.UsedItems
中的键值只是数字。 我不知道如何专门访问键和值数据。 我可以在警报中显示数组内容的简单方法是什么?
我用了这一行:
alert(data[name].ad);
这将引用每个名为ad
记录中的数据。 这样就给了我一种识别记录中特定项目的方法。
好吧,我想出了一个解决方案:
if (data[name].af === "3") {
data[name].af = "Awesome!";
}
即使我已经找到解决问题的办法,但我仍然几乎不知道自己在做什么。 因此,如果有更好的方法,请告诉我。
你可以这样定义一个数组
var example = ["Bad", "Not Bad", "Fine", "Good", "Very Good"];
而不是每次都只需要像这样检查data [name] .af的值即可
data[name].af = example[data[name].af];
这将为您提供所需的结果data [name] .af = 3应该很好,example [3]是您想要的结果...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.