gpt4 book ai didi

Javascript:如何检查数组中的某些项目

转载 作者:行者123 更新时间:2023-12-01 01:53:00 24 4
gpt4 key购买 nike

如何检查数组中的项目是否如下:

var dayPartsArr = ['PT','WDM','WDD','EF','WKE'];

也是对象中的键,例如:

 var dayPartsMap = {
'PT': 'PRIME TIME',
'WDM': 'WEEKDAY MORNING',
'WDD': 'WEEKDAY DAYTIME',
'EF': 'EARLY FRINGE',
'WKE': 'WEEKEND DAYTIME'
};

请记住,dayPartsArr 的顺序并不重要。所以如果

var dayPartsArr = ['WKE','PT','WDM','WDD','EF'];

我仍然希望能够使用 dayPartsMap 来检查 dayPartsArr 中的每个项目是否是 dayPartsMap 中的键

最佳答案

忽略订单

忽略顺序,我们可以获取输入数组并将其与键进行比较,如下所示:

var dayPartsArr = ['WDM','PT','WDD','EF','WKE']; //out of order

var dayPartsMap = {
'PT': 'PRIME TIME',
'WDM': 'WEEKDAY MORNING',
'WDD': 'WEEKDAY DAYTIME',
'EF': 'EARLY FRINGE',
'WKE': 'WEEKEND DAYTIME'
};

dayPartsArr.every(item => ~Object.keys(dayPartsMap).indexOf(item)); // true

// Compare against an array with a missing key
dayPartsArr = ['WDM','PT','FAKE', 'WDD','EF','WKE'];

dayPartsArr.every(item => ~Object.keys(dayPartsMap).indexOf(item)); // false

Note the ~ is the bitwise NOT operator, it helps with indexOf

上一个答案

您可以将对象的键转换为数组并比较该数组,如下所示:

有关 Object.keys 的更多信息,check MDN here.

var dayPartsArr = ['PT','WDM','WDD','EF','WKE'];

var dayPartsMap = {
'PT': 'PRIME TIME',
'WDM': 'WEEKDAY MORNING',
'WDD': 'WEEKDAY DAYTIME',
'EF': 'EARLY FRINGE',
'WKE': 'WEEKEND DAYTIME'
};

// Create the comparison function...
function arraysIdentical(a, b) {
var i = a.length;
if (i != b.length) return false;
while (i--) {
if (a[i] !== b[i]) return false;
}
return true;
};

/// compare!
arraysIdentical(dayPartsArr, Object.keys(dayPartsMap)); // true

arraysIdentical 最初由 Tim Down 建议

关于Javascript:如何检查数组中的某些项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51276005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com