Javascript 在第一个点后拆分字符串并比较2个数组的长度
以下是我的阵列:Javascript 在第一个点后拆分字符串并比较2个数组的长度,javascript,Javascript,以下是我的阵列: var myArray = [ {field: 'region1.mp3.california', flag: false}, {field: 'region1.mp3.marines,region1.mp3.region2.mp3.california', flag: false}, {field: 'region2.mp3.california', flag: false}, {field: 'region2.mp3.abc', flag
var myArray = [
{field: 'region1.mp3.california', flag: false},
{field: 'region1.mp3.marines,region1.mp3.region2.mp3.california', flag: false},
{field: 'region2.mp3.california', flag: false},
{field: 'region2.mp3.abc', flag: false},
{field: 'region3.mp3.abc', flag: false},
];
var regions = ["region1.mp3", "region2.mp3","region3.mp3"];
这里第二个点后的数据属于特定区域
例如:region1.mp3.加利福尼亚,region1.mp3.海军陆战队
california and marines belongs to region1.
所以这里我试图比较regions数组和myArray的长度,根据myArray数据和regions数组的数据长度应该相等,因为myArray包含regions数组中的所有区域数据,所以它们的长度应该相等
预期输出:真
我不知道如何使用reduce
函数来比较
var myArray=[
{字段:'region1.mp3.california',标志:false},
{字段:'region1.mp3.marines,region1.mp3.region2.mp3.california',标志:false},
{字段:'region2.mp3.california',标志:false},
{字段:'region2.mp3.abc',标志:false},
{字段:'region3.mp3.abc',标志:false},
];
var regions=[“region1.mp3”、“region2.mp3”、“region3.mp3”];
var len1=regions.length;
var len2=myArray.reduce(函数(p,c){
返回p.concat(c.field.split(','));
},[])长度;
if(len1==len2)
console.log(true)
其他的
console.log(false)
尝试此reduce函数调用:
myArray.reduce(function(p, c) {
var region = c.field.split(".")[0];
return p.includes(region) == false ? p.concat(region) : p;
}, []).length;
尝试此reduce函数调用:
myArray.reduce(function(p, c) {
var region = c.field.split(".")[0];
return p.includes(region) == false ? p.concat(region) : p;
}, []).length;
我首先使用创建一个新数组,其中仅包含表示region1
或` region2'或` region3'的值。此数组的大小将与myArray
然后我使用删除重复区域。此数组将仅包含区域1
、区域2
和区域3
var myArray=[
{字段:'region1.mp3.california',标志:false},
{字段:'region1.mp3.marines,region1.mp3.region2.mp3.california',标志:false},
{字段:'region2.mp3.california',标志:false},
{字段:'region2.mp3.abc',标志:false},
{字段:'region3.mp3.abc',标志:false},
];
var regions=[“region1.mp3”、“region2.mp3”、“region3.mp3”];
var myArrayRegions=[];
myArrayRegions=myArray.map(函数(o){
返回o.field.split('.')[0];
}).过滤器(功能(项目、位置、自身){
返回自身索引(项目)=位置;
});
log(JSON.stringify(myArrayRegions));
log(JSON.stringify(regions))
我首先使用创建一个新数组,该数组仅包含表示region1
或“region2”或“region3”的值。此数组的大小将与myArray
然后我使用删除重复区域。此数组将仅包含区域1
、区域2
和区域3
var myArray=[
{字段:'region1.mp3.california',标志:false},
{字段:'region1.mp3.marines,region1.mp3.region2.mp3.california',标志:false},
{字段:'region2.mp3.california',标志:false},
{字段:'region2.mp3.abc',标志:false},
{字段:'region3.mp3.abc',标志:false},
];
var regions=[“region1.mp3”、“region2.mp3”、“region3.mp3”];
var myArrayRegions=[];
myArrayRegions=myArray.map(函数(o){
返回o.field.split('.')[0];
}).过滤器(功能(项目、位置、自身){
返回自身索引(项目)=位置;
});
log(JSON.stringify(myArrayRegions));
log(JSON.stringify(regions))代码>您能更清楚地说明输出吗?你想比较什么?+两个数组中的长度可能相同,但区域不相同。数组包含区域数组中的所有区域数据,因此它们的长度应该相等。-从你的照片上看不明显input@Weedoze:我正在尝试比较两个数组的长度,即regions和myArray。在我的数组中,我想按常用区域对记录进行分组,然后比较两个数组的长度。请您更清楚地说明输出内容好吗?你想比较什么?+两个数组中的长度可能相同,但区域不相同。数组包含区域数组中的所有区域数据,因此它们的长度应该相等。-从你的照片上看不明显input@Weedoze:我正在尝试比较两个数组的长度,即regions和myArray。在我的数组中,我想按公共区域对记录进行分组,然后比较两个数组的长度。这将创建重复项这将创建重复项这已工作。请您稍微解释一下您的代码,好吗?我没有这行代码:返回o.field.split('.')[0];})。过滤器(功能(项目,pos,自我){。对不起,我客户端有点差:)@学习我只是简单地链接函数。我更新了答案。如果您不理解。请阅读我答案中链接的文档。这将对您有帮助。非常感谢您的帮助,请继续这样帮助:)@Learning No problem!别忘了阅读文档。它将帮助您学习这个问题。Can请解释一下您的代码??我没有得到这一行:return o.field.split('.')[0];}).filter(函数(item,pos,self){。对不起,我客户端有点差:)@学习我只是简单地链接功能。我更新了答案。如果你不明白。请阅读我答案中链接的文档。这将对你有帮助。非常感谢你的帮助,请继续这样帮助:)@Learning没问题!别忘了阅读文档。它将帮助你学习