答案:js語言:
functionFind(target, array){returnarray.some(arr => arr.some(e => e === target))}
解釋:
外面的some方法是對每個壹維進行遍歷,裏面的some方法是對每個壹維的每壹個元素進行遍歷,判斷是否嚴格等於要找的target元素,復雜度為n方。
?=>是es6語法中的arrow function
例:(x) => x + 6 相當於
function(x){
return x + 6;
};
那麽e => e === target表示返回嚴格等於target的元素e
some()方法用於檢測數組中的元素是否滿足指定條件
some() 方法會依次執行數組的每個元素:
如果有壹個元素滿足條件,則表達式返回 true ?, 剩余的元素不會再執行檢測。
如果沒有滿足條件的元素,則返回false。
註意: ?some() 不會對空數組進行檢測。
註意: ?some() 不會改變原始數組。
這裏小記壹下some以及類似的every,對比壹下其他遍歷方法
some() 有壹個元素滿足條件,即返回true
const a = [1, 2, 3]console.log(a.some(v => v > 5))? //falseconsole.log(a.some(v => v < 2))? //true
every() 所有元素滿足條件,即返回true
const a = [1, 2, 3]console.log(a.every(v => v < 5))? //trueconsole.log(a.every(v => v < 2))? //false
filter() 返回包含滿足條件元素的數組
const a = [1, 2, 3]
console.log(a.filter(v => v < 3))? // [1, 2]
map() 返回壹個新數組
const a = [1, 2, 3]
console.log(a.map(v => v + 5))? // [6, 7, 8]
forEach() 僅循環,無返回值,本質上相當於for
const a = [1, 2, 3]
a.forEach(v => console.log(v))? // 1 2 3