object{a:1,b:2,c:3,d:4}


レイアウトを知っていますか.
では直接対象に入ります!!
実際、JavaScriptはオブジェクト向けです.
実際には、すべてが対象から構成されていると思えば.
后でDOMの概念を理解する时、それを対象にするのは容易で、ほほほ?
ではLet's goもいくつかの問題を用意しました
兄は基本的な問題をしない.(実は...これは基本的な問題です)本当に難しいですううう
第一題
属性の数を返すには、オブジェクトを受信する必要があります.
const obj = {
  a: 1,
  b: 2,
  c: 3,
};

let output = countNumberOfKeys(obj);
console.log(output); // --> 3
この問題はどのように相手を繰り返すかを見せます!!
首都コード
1.結果値を返すカウント変数を宣言します.
2.重複するオブジェクトのキー値の個数
3.繰り返すたびに、カウント変数に1を加えてください.
4.カウント変数を返す
正しいコード
function countNumberOfKeys(obj) {
  // TODO: 여기에 코드를 작성합니다.
  let count = 0;
  for(let key in obj){
    count++
  }return count;
}
対象は順番がないので、繰り返し文はそのまま~~ohk?
簡単な準備運動終了
第二題
配列とオブジェクトを入力し、配列内の各要素をオブジェクトのキーとして使用する場合は、抽出値によって作成された新しいオブジェクトを返す必要があります.
const arr = ['a', 'c', 'e'];
const obj = { a: 1, b: 2, c: 3, d: 4 };

let output = select(arr, obj);
console.log(output); // --> { a: 1, c: 3 }
问题がすぐに理解できた渽民は早く试験に行きましょう~~ハハハ
配列とオブジェクトを入力しますが、配列の値はオブジェクトのキーと同じ値を返す必要があります.
せきぶん
1.繰り返し配列
2.オブジェクトも繰り返します.
(二重複文がわからない場合は再復習)
首都コード
1.結果値を返す変数を宣言し、空のオブジェクトを割り当てます.
2.配列の0番目から繰り返す
3.結果オブジェクトに同じキー値のみを追加します.
function select(arr, obj) {
  // TODO: 여기에 코드를 작성합니다.
  let result = {};
  
  for(let i = 0; i <= arr.length; i++){
    for(let key in obj){
      if(key === arr[i]){
        result[key] = obj[key];
      }
    } 
  }return result;
}
配列の繰り返し文を変えることもできます.もっと簡単です.
function select(arr, obj) {
  // TODO: 여기에 코드를 작성합니다.
  let result = {};
  
  for(let word of arr){  //  for(let i = 0; i <= arr.length; i++) 같은 뜻이고 word ===arr[i] 같은거야 !!! 외우자 
    for(let key in obj){
      if(key === word){
        result[key] = obj[key];
      }
    } 
  }return result;
}
for(let i=0;i<=arr.length;i++)は同じ意味、word=arr[i]は同じ意味!!暗記者
せきぶん
1.二重複文
2.オブジェクトを熟知しているキーとその値
第三題
入力したオブジェクトとキーがそのキーに対応する値が配列である場合は、最後の要素を返す必要があります.
const obj1 = {
  a: 1,
  b: 2,
};

const obj2 = {
  b: 4,
  c: 3,
};

extend(obj1, obj2);
console.log(obj1); // --> {a: 1, b: 2, c: 3}
console.log(obj2); // --> {b: 4, c: 3}
ちょっと技術を教えてあげます.
オブジェクトにキー値があるかどうかはわかります.
let obj = {
  a:1,
  b:2,
  c:3
}
key in obj // false;
a in obj // true; 
知りたい鍵をオブジェクトに入れます.
これならboolean値で表してもいいですか?
首都コード
1.オブジェクト2でオブジェクト1のキー値が見つからない場合は、キー値と値をオブジェクト1に入れます.
function extend(obj1, obj2) {
  // TODO: 여기에 코드를 작성합니다.
  //obj2 키 값이 obj1에서 찾지못하면 obj1에 그 키랑 값을 넣어줘 
  for(let key in obj2){
    if(!(key in obj1)){
      obj1[key] = obj2[key]
    }
  }
}
上のように書いてもいいです.
ちょっと読めなかったら.
function extend(obj1, obj2) {
  // TODO: 여기에 코드를 작성합니다.
  //obj2 키 값이 obj1에서 찾지못하면 obj1에 그 키랑 값을 넣어줘 
  for(let key in obj2){
    if(obj1[key] === undefined){
      obj1[key] = obj2[key]
    }
  }
}
少なくとも同じでしょう?
第四題
入力したオブジェクトとキーがそのキーに対応する値が配列である場合は、最後の要素を返す必要があります.numberタイプの値でなければなりません.
let output = countAllCharacters('banana');
console.log(output); // --> {b: 1, a: 3, n: 2}
入力した文字列に同じ文字がある場合は、値~~oとして個数を指定しますか?
文字列を一列に切り始めたばかりで、順番に比較したいです.
でも・・・文字列にインデックス順があるため...
いいえ、結構です.
function countAllCharacters(str) 
  // TODO: 여기에 코드를 작성합니다.
  // 문자열을 배열로 바꾸고 
  // 반복문으로 첫번째 인덱스 부터 계속 비교한다. 
  // 배열의 값이 객체의 키가 되고, 키의 해당하는 값을 카운터 해주세요. 
  // 만약에 해당 요소의 키 가 없으면 객체의 키를 1로 할당 해주세요. 
  // 그렇지 않으면, 해당요소가 키가 ++를 해주세요 
  let arr = str.split('');
  let obj = {};
  for(let i = 0; i < arr.length; i++){
    if(obj[arr[i]] === undefined){
      obj[arr[i]] = 1;
    }else {
      obj[arr[i]]++
    }
  } return obj;
}
2番目の麺はどうですか.
いっそオブジェクトに値を割り当て、最初に見つからない場合は1を割り当てます.
function countAllCharacters(str) {
  // TODO: 여기에 코드를 작성합니다.
  // 결과값을 넣을 객체를 선언해줘 
  // 문자열을 하나를 계속 다음꺼랑 비교하고 카운터 해주고 
  // 그 다음 문자열을 똑같이 해줘라 
  let result = {};

  for(let i = 0; i < str.length; i++){
    if(result[str[i]] === undefined){
      result[str[i]] = 1;
    }else{
      result[str[i]]++
    }
  }return result;
}
ラウンドシーンはきれいですよね?ははは
第五題
入力したオブジェクトとキーがそのキーに対応する値が配列である場合は、最後の要素を返す必要があります.
注意事項
スペースは含まれません.
最も繰り返し頻度の高い文字数が多い場合は、まずその回数に達した文字を返さなければなりません.
空の文字列が受信された場合は、空の文字列を返す必要があります.
let output = mostFrequentCharacter('apples not oranges');
console.log(output); // --> 'p'

output = mostFrequentCharacter('hello world');
console.log(output); // --> 'l'
前の問題とあまり差がないように見えますが、この問題はかなり厄介です.
なぜなら.
オブジェクトに順序がないため、配列内の最大の検索方法では簡単に検索できません.
参考資料の種類が多いです.
でも.いつまでも答えがあるよ~~心配しないで
もちろんオリジナルに変える方法もあります.
しかし、今回は私がどんな原理から比較できるかを見せてあげます.
私は最初はこのように解いた.
1.文字列を配列に変換します.を選択します.
2.配列を2つに分けます.
3.キーを表す配列とカウンタを表す配列
4.カウンタを提供する配列を再比較し、そのキーを表す配列の値を返します.
function mostFrequentCharacter(str) {
  // TODO: 여기에 코드를 작성합니다.
  // 객체마다 알파벳의 휫수를 할당하고, 
  // great 변수 선언해서 가장 큰 횟수를 찾아 
  // 반복문(for in) 활용해서 비교한다. 
  let arr = str.split(' ');
      arr = arr.join('');
      arr = arr.split('');

  let countObj = {}; 
  let greatestNum = 0;
  let greatestWord = '';

  for(let i = 0; i < arr.length; i++){
    if(countObj[arr[i]] === undefined){
      countObj[arr[i]] = 1;
    }else{
      countObj[arr[i]]++
    }
    if(greatestNum < countObj[arr[i]]){
      greatestNum = countObj[arr[i]];
      greatestWord = arr[i];
    }
  }return greatestWord;
}
アイデアがあるのではないでしょうか.ハハハハ
2回目に行きます.
function mostFrequentCharacter(str) {
  // TODO: 여기에 코드를 작성합니다.
  // 문자열의 띄어쓰기는 값은 건너뛰어줘 
  let countObj = {};
  let maxNum = 0;
  let maxStr = '';

  for (let i = 0; i < str.length; i++){
    if(str[i] === ' '){
      continue;
    }
    if(countObj[str[i]] === undefined){
      countObj[str[i]] = 1;
    }else{
      countObj[str[i]]++;
    }
  }
  for(let key in countObj){
    if(maxNum < countObj[key]){
      maxNum = countObj[key];
      maxStr = key;
    }
  }return maxStr;
}
上に致命的な間違いがある.
私は2回複文を使った.
注意:
最も繰り返し頻度の高い文字数が多い場合は、まずその回数に達した文字を返さなければなりません.
この言葉は、まず繰り返したものを取り戻すということです.
2回繰り返すと、一番前の繰り返しが回復します.
正しいコード
function mostFrequentCharacter(str) {
  // TODO: 여기에 코드를 작성합니다.
  // 문자열의 띄어쓰기는 값은 건너뛰어줘 
  let countObj = {};
  let maxNum = 0;
  let maxStr = '';

  for (let i = 0; i < str.length; i++){
    if(str[i] === ' '){
      continue;
    }
    if(countObj[str[i]] === undefined){
      countObj[str[i]] = 1;
    } else {
      countObj[str[i]]++;
    }
    if(maxNum < countObj[str[i]]){
      maxNum = countObj[str[i]];
      maxStr = str[i];
    } 
  }
  return maxStr;
}
最後の秘訣をあげます.
相手を比較するのは難しい.
したがって、オブジェクトに2つの値を割り当ててから始めます.
function mostFrequentCharacter(str) {
  let obj = { mostCount: 0, mostFrequent: '' };
  for (let i = 0; i < str.length; i++) {
    if (str[i] === ' ') {
      continue;
    }

    if (obj[str[i]] === undefined) {
      obj[str[i]] = 0;
    }
    obj[str[i]] += 1;

    if (obj[str[i]] > obj['mostCount']) {
      obj['mostCount'] = obj[str[i]];
      obj['mostFrequent'] = str[i];
    }
  }
  return obj['mostFrequent'];
}
これでもいい
方法はたくさんありますか?
では、次の授業です.
中間概念を少し整理して、関数の中の関数を理解しましょう.ほほほ?~
こんにちは