Javascript 如何在多个数组上映射元素值

Javascript 如何在多个数组上映射元素值,javascript,algorithm,Javascript,Algorithm,以下是几个阵列名称: var Transport = ['Bus', 'Car', 'Truck', 'Train']; var Fruits = ['Apple', 'Banana', 'Grape']; var Animals = ['Dog', 'Cat', 'Horse', 'Sheep']; 我有这样一个结果集: var x = [ {'name': 'Bus'}, {'name': 'Banana'}, {'n

以下是几个阵列名称:

var Transport = ['Bus', 'Car', 'Truck', 'Train'];
var Fruits = ['Apple', 'Banana', 'Grape'];
var Animals = ['Dog', 'Cat', 'Horse', 'Sheep'];
我有这样一个结果集:

var x = [
            {'name': 'Bus'},
            {'name': 'Banana'},
            {'name': 'Car'},
            {'name': 'Dog'},
            {'name': 'Truck'},
            {'name': 'Cat'}
          ];
现在我想要一些逻辑,返回哪个元素是哪个类别。例子是这样的

//what I want: 
var newresultTransport = ['Bus', 'Car', 'Truck'];
var newresultAnimal = ['Dog', 'Cat'];
var newresultFruits = ['Banana'];
任何帮助都会显示出来

首先使用map将x转换为字符串数组

现在使用过滤器

水果和动物也是如此

演示

var运输=[‘公共汽车’、‘汽车’、‘卡车’、‘火车’]; var水果=['苹果','香蕉','葡萄']; 动物变量=[‘狗’、‘猫’、‘马’、‘羊’]; 变量x=[ {'name':'Bus'}, {'name':'Banana'}, {'name':'Car'}, {'name':'Dog'}, {'name':'Truck'}, {'name':'Cat'} ]; x=x.map s=>s.name; var newresultTransport=Transport.filter s=>x.indexOf s!=-1. var newresultAnimal=Fruits.filter s=>x.indexOf s!=-1. var newresultFruits=Animals.filter s=>x.indexOf s!=-1. console.log newresultTransport、newresultAnimal、newresultFruits 首先使用map将x转换为字符串数组

现在使用过滤器

水果和动物也是如此

演示

var运输=[‘公共汽车’、‘汽车’、‘卡车’、‘火车’]; var水果=['苹果','香蕉','葡萄']; 动物变量=[‘狗’、‘猫’、‘马’、‘羊’]; 变量x=[ {'name':'Bus'}, {'name':'Banana'}, {'name':'Car'}, {'name':'Dog'}, {'name':'Truck'}, {'name':'Cat'} ]; x=x.map s=>s.name; var newresultTransport=Transport.filter s=>x.indexOf s!=-1. var newresultAnimal=Fruits.filter s=>x.indexOf s!=-1. var newresultFruits=Animals.filter s=>x.indexOf s!=-1.
console.log newresultTransport、newresultAnimal、newresultFruits 可以将对象用于组、单个值和结果。然后生成一个哈希表,以获取每个名称的组,并使用它在结果集中创建一个组,然后将该名称推送到该组

变量组={交通工具:[“公共汽车”、“汽车”、“卡车”、“火车”]、水果:[“苹果”、“香蕉”、“葡萄”]、动物:[“狗”、“猫”、“马”、“羊”], 数组=[{name:'Bus'},{name:'Banana'},{name:'Car'},{name:'Dog'},{name:'Truck'},{name:'Cat'}], 哈希={}, 分组={}; Object.keysgroups.foreachk函数{ 组[k]。ForEachA函数{ 散列[a]=k; }; }; array.foreacho函数{ var k=散列[o.name]; 分组[k]=分组[k]| |[]; 分组[k].pusho.name; }; console.loggroup;
.作为控制台包装{max height:100%!important;top:0;}您可以将对象用于组、单个值和结果。然后生成一个哈希表,以获取每个名称的组,并使用它在结果集中创建一个组,然后将该名称推送到该组

变量组={交通工具:[“公共汽车”、“汽车”、“卡车”、“火车”]、水果:[“苹果”、“香蕉”、“葡萄”]、动物:[“狗”、“猫”、“马”、“羊”], 数组=[{name:'Bus'},{name:'Banana'},{name:'Car'},{name:'Dog'},{name:'Truck'},{name:'Cat'}], 哈希={}, 分组={}; Object.keysgroups.foreachk函数{ 组[k]。ForEachA函数{ 散列[a]=k; }; }; array.foreacho函数{ var k=散列[o.name]; 分组[k]=分组[k]| |[]; 分组[k].pusho.name; }; console.loggroup;
.作为控制台包装{max height:100%!重要;top:0;}在您的问题中创建var x时:

var x = [
{'name': 'Bus'},
{'name': 'Banana'},
{'name': 'Car'},
{'name': 'Dog'},
{'name': 'Truck'},
{'name': 'Cat'}
]
1您遗漏了类别。可以修改x以包含每个对象的类别特性

var x = [
{'name': 'Bus', 'category':'transport'},
{'name': 'Banana', 'category':'fruit'},
{'name': 'Car', 'category':'transport'},
{'name': 'Dog', 'category':'animal'},
{'name': 'Truck', 'category':'transport'},
{'name': 'Cat', 'category':'animal'}
]
2然后,您可以使用过滤器将数组过滤到所需的类别。例如:

var x = [
{'name': 'Bus', 'category':'transport'},
{'name': 'Banana', 'category':'fruit'},
{'name': 'Car', 'category':'transport'},
{'name': 'Dog', 'category':'animal'},
{'name': 'Truck', 'category':'transport'},
{'name': 'Cat', 'category':'animal'}
]

const justTransport = x.filter(function(el){
    return el.category === "transport"
});

console.log(justTransport);

在您的问题中创建var x时:

var x = [
{'name': 'Bus'},
{'name': 'Banana'},
{'name': 'Car'},
{'name': 'Dog'},
{'name': 'Truck'},
{'name': 'Cat'}
]
1您遗漏了类别。可以修改x以包含每个对象的类别特性

var x = [
{'name': 'Bus', 'category':'transport'},
{'name': 'Banana', 'category':'fruit'},
{'name': 'Car', 'category':'transport'},
{'name': 'Dog', 'category':'animal'},
{'name': 'Truck', 'category':'transport'},
{'name': 'Cat', 'category':'animal'}
]
2然后,您可以使用过滤器将数组过滤到所需的类别。例如:

var x = [
{'name': 'Bus', 'category':'transport'},
{'name': 'Banana', 'category':'fruit'},
{'name': 'Car', 'category':'transport'},
{'name': 'Dog', 'category':'animal'},
{'name': 'Truck', 'category':'transport'},
{'name': 'Cat', 'category':'animal'}
]

const justTransport = x.filter(function(el){
    return el.category === "transport"
});

console.log(justTransport);

非常感谢Nina Scholz非常感谢Nina Scholz。