7 回答

TA貢獻(xiàn)1797條經(jīng)驗 獲得超6個贊
先利用sort()方法排序再進(jìn)行比較:
func challenge1(string1: String, string2: String) -> Bool {
// 將輸入的字符串兒保存到數(shù)組中
let array1 = Array(string1.characters)
let array2 = Array(string2.characters)
// 對數(shù)組進(jìn)行排序,然后再直接進(jìn)行比較
return array1.sorted() == array2.sorted()
}

TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊
切割后成為數(shù)組后sort一下后在比較
var a=`
just
a
test
`
var b=`
test
just
a
`;
var c=`
just
test
aa
`
function test(a,b){
var splitReg=/[a-z]+/gi;
a=a.match(splitReg);
b=b.match(splitReg);
a=a.sort();
b=b.sort();
return a.every(function(item,index){
return item == b[index];
});
}
console.log(test(a,b),test(a,c));
可以先比較下length

TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊
給你一個笨方法,for循環(huán)其中一個字符串,跟另外一個做對比includes,只要循環(huán)過程有一次false,那么則返回false。
可以試試火狼的方法,我覺得比較合理,前提是先比較一下length是否相等

TA貢獻(xiàn)1876條經(jīng)驗 獲得超7個贊
// 判斷array里是否有值與el元素相等
function inArray(array, el) {
for ( var i = array.length; i--; ) {
if ( array[i] === el ) return true;
}
return false;
}
// 對比兩個數(shù)組
function isEqArrays(arr1, arr2) {
// 長度不同直接返回false
if ( arr1.length !== arr2.length ) {
return false;
}
for ( var i = arr1.length; i--; ) {
if ( !inArray( arr2, arr1[i] ) ) {
return false;
}
}
return true;
}

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊
我提供個偏方:只要判斷倆數(shù)組等長且所有元素都在對方的數(shù)組中即可
(沒看到樓上這個答案就答了,?就是樓上這個思路)
function equal(arr1, arr2){
return arr1.length === arr2.length
&&
arr1.every((item)=>{
return arr2.indexOf(item) >-1
})
&&
arr2.every((item)=>{
return arr1.indexOf(item) >-1
})
}
添加回答
舉報