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。