Javascript 对象数组
我有一个对象数组,其中一个例子是Javascript 对象数组,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我有一个对象数组,其中一个例子是 [ { "lang_code": "eng", "site_language": "1", "name": "English" }, { "lang_code": "afr", "site_language": "1", "name": "Afrikaans" },
[
{
"lang_code": "eng",
"site_language": "1",
"name": "English"
},
{
"lang_code": "afr",
"site_language": "1",
"name": "Afrikaans"
},
{
"lang_code": "ale",
"site_language": "0",
"name": "Aleut"
},
]
我希望能够在整个数组中搜索特定的语言代码,比如说我使用英语。我希望在整个数组中搜索英语。如果有,我希望它返回英语,如果没有,我希望它返回无效。有什么想法吗?来个for循环怎么样。比如:
function find_lang(input_arr, lang_code) {
for(var i = 0; i < input_arr.length; i++) {
var o = input_arr[i];
if( o.lang_code === lang_code ) {
return o.name;
}
}
return "invalid";
}
来一个for循环怎么样。比如:
function find_lang(input_arr, lang_code) {
for(var i = 0; i < input_arr.length; i++) {
var o = input_arr[i];
if( o.lang_code === lang_code ) {
return o.name;
}
}
return "invalid";
}
您可以使用:
如果您想添加到混合中,而不是使用三元操作,但这很可能会更慢,并且不会真正提供任何额外的好处:
function findLang(arr, code) {
return arr.filter(function (el) {
return el.lang_code === code;
}).map(function (el) {
return el.name;
})[0] || 'invalid';
}
您可以使用:
如果您想添加到混合中,而不是使用三元操作,但这很可能会更慢,并且不会真正提供任何额外的好处:
function findLang(arr, code) {
return arr.filter(function (el) {
return el.lang_code === code;
}).map(function (el) {
return el.name;
})[0] || 'invalid';
}
你可以这样做:
// configure your parameters
function checkArr(){
for (var i = 0; i < x.length; i++){
if (x[i].lang_code == "eng")
return "English";
}
return "invalid";
}
var x = [
{
"lang_code": "eng",
"site_language": "1",
"name": "English"
},
{
"lang_code": "afr",
"site_language": "1",
"name": "Afrikaans"
},
{
"lang_code": "ale",
"site_language": "0",
"name": "Aleut"
}
];
你可以这样做:
// configure your parameters
function checkArr(){
for (var i = 0; i < x.length; i++){
if (x[i].lang_code == "eng")
return "English";
}
return "invalid";
}
var x = [
{
"lang_code": "eng",
"site_language": "1",
"name": "English"
},
{
"lang_code": "afr",
"site_language": "1",
"name": "Afrikaans"
},
{
"lang_code": "ale",
"site_language": "0",
"name": "Aleut"
}
];
Underline.js为这类事情提供了一些有用的帮助: 例如,查找: 查看列表中的每个值,返回第一个 通过真值测试谓词,如果没有值通过 测验函数在找到可接受的元素后立即返回, 而且不会遍历整个列表 其中: 查看列表中的每个值,返回所有 包含属性中列出的所有键值对的值
Underline.js为这类事情提供了一些有用的帮助: 例如,查找: 查看列表中的每个值,返回第一个 通过真值测试谓词,如果没有值通过 测验函数在找到可接受的元素后立即返回, 而且不会遍历整个列表 其中: 查看列表中的每个值,返回所有 包含属性中列出的所有键值对的值
上述findById函数的通用和更灵活版本:
// array = [{key:value},{key:value}]
function objectFindByKey(array, key, value) {
for (var i = 0; i < array.length; i++) {
if (array[i][key] === value) {
return array[i];
}
}
return null;
}
var array = your array;
var result_obj = objectFindByKey(array, 'lang_code', 'eng');
上述findById函数的通用和更灵活版本:
// array = [{key:value},{key:value}]
function objectFindByKey(array, key, value) {
for (var i = 0; i < array.length; i++) {
if (array[i][key] === value) {
return array[i];
}
}
return null;
}
var array = your array;
var result_obj = objectFindByKey(array, 'lang_code', 'eng');
对于循环,筛选器/映射组合。。。循环、过滤器/映射组合的大量选项。。。有很多选择