是否有类似于PHP的Javascript函数';s数组_列?

是否有类似于PHP的Javascript函数';s数组_列?,javascript,php,vue.js,Javascript,Php,Vue.js,我正在使用Vue.js 我想要的是从多维数组中获取一个名为'name'的列 我不确定这个多维数组的维度大小 样本数组在这里 { "form":{ "id":"123465", "title":"User Information", "fields":[ { "type":"date", "title":"D

我正在使用Vue.js

我想要的是从多维数组中获取一个名为
'name'
的列

我不确定这个多维数组的维度大小

样本数组在这里

{
    "form":{
        "id":"123465",
        "title":"User Information",
        "fields":[
                    {
                        "type":"date",
                        "title":"Document date",
                        "name":"document_date",
                        "required":true
                    },
                    {
                        "type":"input",
                        "title":"Document no",
                        "name":"document_no",
                        "required":true
                    }
                ],
        "tabs":{
            "xxx-general":{
                "title":"General",
                "fields":[
                    {
                        "type":"date",
                        "title":"DOB",
                        "name":"dob"
                    },
                    {
                        "type":"toggle",
                        "title":"Keep my profile private",
                        "name":"is_private"
                    },
                ]
            },
            "xxx-times":{
                "title":"Ticket",
                "fields":[
                    {
                        "type":"datetime",
                        "title":"Arrival time",
                        "name":"arrival_time"
                    },
                    [
                        {"type":"number","title":"Quantity","name":"quantity"},
                        {"type":"currency","title":"Price","name":"price"}
                    ]
                ]
            }
        }
    }
}
我知道PHP中有
array\u column
函数,我想使用与此PHP函数等效的javascript函数


任何人都可以帮助我

执行深度查找没有本机方法,但其实实现起来非常简单:

//根据键、值或键和值匹配返回对象数组
函数getObjects(对象、键、值){
var对象=[];
用于(obj中的var i){
如果(!obj.hasOwnProperty(i))继续;
如果(对象的类型[i]=“对象”){
objects=objects.concat(getObjects(obj[i],key,val));
}否则
//如果键匹配且值匹配,或者如果键匹配且值未传递(消除键匹配但传递的值不传递的情况)
如果(i==key&&obj[i]==val | | i==key&&val=''”{//
对象。推送(obj);
}else if(obj[i]==val&&key==''){
//仅当对象不在数组中时添加
if(objects.lastIndexOf(obj)=-1){
对象。推送(obj);
}
}
}
归还物品;
}
//返回与某个键匹配的值数组
函数getValues(对象,键){
var对象=[];
用于(obj中的var i){
如果(!obj.hasOwnProperty(i))继续;
如果(对象的类型[i]=“对象”){
objects=objects.concat(getValues(obj[i],key));
}else if(i==键){
推(obj[i]);
}
}
归还物品;
}
//返回与特定值匹配的键数组
功能获取键(obj、val){
var对象=[];
用于(obj中的var i){
如果(!obj.hasOwnProperty(i))继续;
如果(对象的类型[i]=“对象”){
objects=objects.concat(getKeys(obj[i],val));
}else if(obj[i]==val){
物体。推(i);
}
}
归还物品;
}
var json={“glossary”:{“title”:“example glossary”,“GlossDiv”:{“title”:“S”,“GlossList”:{“GlossEntry”:{“ID”:“SGML”,“sorta”:“SGML”,“GlossTerm”:“标准通用标记语言”,“首字母缩写”:“SGML”,“Abbrev”:“iso8879:1986”,“GlossDef”:{“para”:“一种元标记语言,用于创建标记语言,如DocBook”,“ID”:“44”,“str”:“SGML”,“glossee也”:[“GML”,“XML”]},“glossee”:“markup”}';
var js=JSON.parse(JSON);
//获取与JSON中的某个键和值匹配的对象的示例
log(getObjects(js,'ID','SGML');
//返回1个对象,其中键名称ID的值为SGML
//获取与JSON中某个键匹配的对象的示例
log(getObjects(js,'ID','');
//返回2个对象,因为在2个对象中找到了具有名称ID的键
//获取与JSON中某个值匹配的OBEJCT的示例
log(getObjects(js,,'SGML');
//返回2个对象,因为2个对象具有值为SGML的键
//获取与JSON中某个键匹配的对象的示例
log(getObjects(js,'ID','');
//返回2个对象,因为在2个对象中找到了具有名称ID的键
//从JSON中传递的任何键获取值的示例
log(getValues(js,'ID'));
//返回数组[“SGML”,“44”]
//通过JSON中的值进行搜索来获取密钥的示例
log(getKeys(js,'SGML');

//返回数组[“ID”、“sorta”、“Acronym”、“str”]
正如其他人所说,JavaScript中没有本机解决方案(作为函数)。相反,您必须使用多个步骤。您可能需要创建一些通用函数,以便稍后使用

提示:为了更好的可读性,我缩短了您的示例数据

var数据={
“表格”:{
“id”:“123465”,
“标题”:“用户信息”,
“字段”:[
{
“类型”:“日期”,
“标题”:“文件日期”,
“名称”:“文件日期”,
“必需”:true
},
{
“类型”:“输入”,
“标题”:“文件编号”,
“名称”:“文件编号”,
“必需”:true
}
],
“选项卡”:{
//…缩短了。。。
}
}
}
//=======通用功能======
功能道具(路径,obj){
返回路径.split('.').reduce(函数(p,名称){
返回p==null?p:p[name];
},obj);
}
函数映射(func,arr){
返回数组.isArray(arr)?arr.map(func):[];
}
函数mapDeep(路径、函数、对象){
返回mappaye(func,prop(path,obj));
}
//=======解决方案======

log(mapreep('form.fields',function(x){return x.name;},DATA))
只需在前面的答案中添加一个解决方案:

const数据={
“表格”:{
“id”:“123465”,
“标题”:“用户信息”,
“字段”:[
{
“类型”:“日期”,
“标题”:“文件日期”,
“名称”:“文件日期”,
“必需”:true
},
{
“类型”:“输入”,
“标题”:“文件编号”,
“名称”:“文件编号”,
“必需”:true
}
],
“选项卡”:{
“xxx概述”:{
“头衔”:“将军”,
“字段”:[
{
“类型”:“日期”,
“标题”:“DOB”,
“名称”:“dob”
},
{
“类型”:“切换”,
“标题”:“保密我的个人资料”,
“姓名”:“是私人的”
},
]
},
“xxx次”:{
“标题”:“票证”,
“字段”:[
{
“类型”:“日期时间”,
“标题”:“到达时间”,
“名称”:“到达时间”
},
[
{“类型”:“编号”、“标题”:“数量”、“名称”:“数量”},
{“类型”:“货币”、“标题”:“价格”、“名称”:“价格”}
]