[1,2,3].CONTAINS([1,2]) ==> true
[1,2,3].CONTAINS([1,2,3,4]) ==> false
{a:1,b:2,c:3}.HASKEYS([a,b]) ==> true
{a:1,b:2,c:3}.HASKEYS([a,b,c,d]) ==> false
有一個函數來檢查數組包含另一個數組?
[1,2,3].CONTAINS([1,2]) ==> true
[1,2,3].CONTAINS([1,2,3,4]) ==> false
{a:1,b:2,c:3}.HASKEYS([a,b]) ==> true
{a:1,b:2,c:3}.HASKEYS([a,b,c,d]) ==> false
有一個函數來檢查數組包含另一個數組?
沒有,但你可以做一個:
Array.prototype.contains = function(other) {
for (var i = 0; i < other.length; i++) {
if (this.indexOf(other[i]) === -1) return false;
}
return true;
}
如果爲了事項:
Array.prototype.contains = function(other) {
var broken;
if (!other.length) return true;
for (var i = 0; i < this.length - other.length + 1; i++) {
broken = false;
for (var j = 0; j < other.length; j++) {
if (this[i + j] !== other[j]) {
broken = true;
break;
}
}
if (!broken) return true;
}
return false;
}
另一個功能是相似的,所以我要把它留給你來完成:
Object.prototype.has_keys = function(keys) {
...
}
這個問題可能不夠詳細,但是從這個問題來看,我期待「[1,2,3] .contains([2,1])」應該返回false。你的實現使它返回true。 – 2013-04-24 05:32:02
@TimothéeGroleau:在這種情況下,請參閱我的編輯。 – Blender 2013-04-24 05:37:51
很好完成@Blender,我認爲在那裏需要另一個循環來檢測其他[0]的所有事件。否則,以下返回false:「[1,2,3,2,1] .contains([2,1])」 – 2013-04-24 05:45:34
+1,因爲這個問題沒有問題。我不相信有一個準備好的,你會更好地寫自己的。 – ericosg 2013-04-24 05:25:10