如何根据值获取位于数组中的json的键,例如,如果值 ValueB 它应该返回 MainB
var app = angular.module('myApp', []);
app.controller('ArrayController', function ($scope) {
$scope.myDatas = [
{
"Test1": "Value1",
"MainA": ""
},
{
"Test1": "Value2",
"MainA": "ValueB"
},
{
"Test1": "",
"MainA": "ValueC"
}
];
$scope.getJsonKey = function(jsonArray, jsonValue)
{
angular.forEach(jsonArray, function(value, index)
{
if (value.Test1 === jsonValue)
{
return "Test1";
}
if (value.MainA === jsonValue)
{
return "MainA";
}
});
};
console.log($scope.getJsonKey($scope.myDatas, "ValueB"));
});
任何人都可以告诉我一些解决方案吗
答案 0 :(得分:2)
这是一个小功能,可以做你想要的,只要值是唯一的:
var arr=[
{
"Test1": "Value1",
"MainA": "ValueA"
},
{
"Test2": "Value2",
"MainB": "ValueB"
},
{
"Test3": "Value3",
"MainC": "ValueC"
}
]
function getKey(arr, val){
for(var i=0;i<arr.length;i++){
var item= arr[i];
for(var key in item){
if(val === item[key]) return key;
}
}
return null; // not found
}
console.log(getKey(arr, 'ValueB')) // MainB
&#13;
答案 1 :(得分:1)
试试这个
$scope.getJsonKey = function(jsonArray, jsonValue)
{
angular.forEach(jsonArray, function(value, index)
{
for(var key in value) {
if (value === jsonValue)
{
return key
}
}
});
};
console.log($scope.getJsonKey($scope.myDatas, "ValueB"));
答案 2 :(得分:1)
你这里没有共享太多代码,所以我不确定最佳解决方案是什么。 但是,要简单回答您的问题,您可以使用此示例: 通过$ .parseJSON()将JSON转换为js对象,然后找到您的密钥:
function getKeyInArray(arr, val){
for(var i=0, len=arr.length;i<len;i++){
var obj = arr[i];
for(var key in obj){
if(obj[key] == val)
return key;
}
}
return null;
}