1015 TIL



読めない問題をたくさん聞く

質問です。

// 아래 함수를 작성해주세요.
function totalIngredients() {
  let result = pasta.concat(pizza); // ['tomato', 'basil', 'onion','chicken','tomato', 'cheese', 'onion','olive','beef']
  let newResult = result.filter((x, index) =>
    result.indexOf(x) === index);
// 중복되는 요소가 있어도 맨 앞에 있는 요소 하나만 가져온다.
  return newResult
}

console.log(totalIngredients())
コードの説明:
indexOfは、elementを入れた後に配列内のそのelementが存在する先頭のインデックスを返します.
トマトが後ろにあっても、前のトマトのインデックス0だけが返されます.
x中にトマト玉ねぎ~のお値段が入っています
入力したx値をindexOfに入れているので、トマトが0になっているのか1になっているのかがわかり、今表示されている位置が自分の位置と違うと重複値があると思ってしまうので、並べ替えではなく外します.
x中のタマネギ(2)とindex(2)が等しいかどうかを判断し、解雇し、同じためスキップする.
後ろのタマネギのindexは6で、indexOf(「タマネギ」)の値は2で、2つが合わず、重複を取り除きます.indexOf는 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고, 존재하지 않으면 -1을 반환합니다.フィルタ内部では,ユーザが自分の望む論理を記述できるようになった[6番目のタマネギをチェックすると,indexOf(「タマネギ」)は2,indexOfは6であるため,別の値である]このため,ユーザは値が重複していると考えてフィルタリングする.
result.filter((x, index) =>
result.indexOf(x) === index
このように書くと重複データ削除になることを覚えておいてください.
function totalIngredients () {

  let result = pasta.concat(pizza);

  let newResult = [...new Set(result)];

  return newResult;

---->

  return [...new Set(pasta.concat(pizza))];

}
[...new Set():重複値を削除

質問です。


私は市場に行ってかごを見て、カビが生えていることに気づいた.
かごからカビを取り除く関数を書いてください!
let basket = [['양파','곰팡이'],['곰팡이','빵','딸기잼'],['귤','곰팡이','사과']];

function removeGerm(arr) {
  // 여기에 코드를 작성해주세요!
  for(let i = 0; i < arr.length; i++){
    for(let j = 0; j <= arr[i].length; j++){
      if(arr[i][j] === '곰팡이'){
        arr[i].splice(j, 1);
        j--;
      }
    }
  }

  return arr;
}

console.log(removeGerm(basket));
コードの説明:
arrは[‘タマネギ’‘カビ’],[‘カビ’,‘パン’,‘イチゴジャム’],[‘オレンジ’,‘カビ’,‘リンゴ’]である.
Arr[0]=[『たまねぎ』『カビ』]
Arr[1]=[『カビ』『パン』『イチゴジャム』]
Arr[2]=[『みかん』『かび』『りんご』]
arr配列を0,1,2インデックスの値とすると、このような状況が発生します.
arrは3つの配列があるのでindexで0,1,2です.だから.長さの長さは3です.
したがってfor(let i=0;iそのため、最初の複文「玉ねぎ」「カビ」で取り出し、その長さ(2)を繰り返すと玉ねぎが取り出され、次にカビ、カビであれば配列から削除されるコードです.
iが0の場合jは0,1
iが1の場合jは0,1,2
iが2の場合jは0 1 2
iが0の場合は玉ねぎとカビが2個しかないので、長さは2です.従ってi jによれば0,1,2であってもよい
j--にあげた理由は
最後に「みかん、かび、かび、りんご」が並んでいたら
みかんなので削除できません
j=1=>カビなので削除
[オレンジカビりんご]このように配列調整しました
しかしここのカビはj=1の位置にありますj=1の位置を確認しました.
したがって、カビを除去する場所は1であり、j++のためカビは発見されず、2の危機にあり、そうであれば2番目のカビは除去できないので、j--でカビを除去する必要がある1の意味に移行する.