我想知道如何从这样的数组返回多个值:
var countries = [
{ key: "Spain", doc_count: 1378 },
{ key: "Greece", doc_count: 1259 }
];
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我设置的内容,可以很好地返回单个值。我想知道如何才能通过多个国家/地区,而不是寻找一个国家/地区。
var countriesFound = countries.filter(function(country) {
return country.key === 'Spain';
});
Run Code Online (Sandbox Code Playgroud)
关于这一点,我还想将找到的对象添加到数组的前面,这样我就可以在countrys数组中复制它。
使用此方法会导致一些意外的结果,因为我最终将一个数组作为countrys数组中的第一项,并将想要的对象存储在该数组中。
countries.unshift(countriesFound);
Run Code Online (Sandbox Code Playgroud)
结果输入(至少我认为它看起来像这样):
var countries = [
[{ key: "Spain", doc_count: 1378 }],
{ key: "Spain", doc_count: 1378 },
{ key: "Greece", doc_count: 1259 }
];
Run Code Online (Sandbox Code Playgroud) 我希望能够过滤数组中的多个字符串(类型).例如,我想在下面的数据结构中过滤类型肉和类型水果.我想要实现的是过滤后的数据对象.
const data = [{type: "meat", food: "hamburger"}, {type:"fruit", food:"banana"}, {type:"fish", food: "red snapper"}, {type:"vegetables", food:"fungi"}]
let filter1 = 'meat'
let filter2 = 'fruit'
const filteredData = data.filter( post => post.type.includes(filter1, filter2) ? post:'');
// My expected result after filtering: [{type: "meat", food: "hamburger"}, {type:"fruit", food:"banana"}]
Run Code Online (Sandbox Code Playgroud)
不幸的是,它返回了4个结果而不是上面预期的2个结果.
我知道如何在像_underscore.js这样的库中处理它,但我想在现代的EcmaScript中实现它.
我有一个 json 元素数组。我想根据特定值过滤数组。下面是数组。
var arr = [
{name: bobby, id: 1, age: 23},
{name: charls, id: 2, age: 28},
{name: indi, id: 3, age: 23},
{name: charlie, id: 4, age: 25}]
Run Code Online (Sandbox Code Playgroud)
从上面的数组中,我只想过滤姓名为 bobby && indi 的员工。我已经尝试过下面的代码。
var filteredArray;
for (var i =0 ; i < arr.length; i++){
if(arr[i].name === 'bobby' || arr[i].name === 'indi'){
filteredArray.push(arr[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
但通过上面的代码,我需要多次提及 OR(||) 条件,并且这些名称的数量可能会发生变化,比如 1 次我只想要具有 Bobby 名字的员工,其他时候我想要 Bobby、Indi 和 Charlie。有没有办法让它动态化。如果是,请告诉我。提前致谢。