コードワードは簡単ではなく、役立つ学生は私のWeChat公式アカウントに注意を払うことを望んでいます:コードプログラムライフ、ありがとう!
前回の号で、Object.definePropertyに関する3つのインタビューの質問を共有しましたが、本日はもう1つ共有します。これはBaiduのインタビューの質問でもあります。
var obj = {
a:1,
b:2,
c:3
}
for(var k in obj){
obj[k] += 1;
}
console.log(obj);
// 输出:
/*
{
a:3,
b:3,
c:5
}
*/
主題の要件は次のとおりです:既存のオブジェクトには3つの属性a、b、およびcがあり、値は1、2、および3です。次に、ループトラバーサルを実行し、属性の値に対して+1操作を実行します。次に、オブジェクトを出力するとき、a、b、cの値は3、3、5でなければなりません。
を操作しない場合、出力の内容は確かに2,3,4であり、要求の対象は3,3,5です。明らかに、Object.definePropertyを使用する必要があります。
var _obj = {
a:1,
b:2,
c:3
}
var obj = {
};
for(var k in _obj){
Object.defineProperty(obj,k,{
enumerable:true,
writable: k === 'b' ? false:true,
value: ++_obj[k]
})
}
for(var k in obj){
obj[k] += 1;
}
console.log(obj);
同様のトピックを見つけたら、最初にObject.definePropertyについて考える必要があります。
フォローアップインタビューの質問は継続的に更新され、最新かつ最も包括的な質問が最初に公開アカウントでリリースされます。
WeChatミニプログラムコースのデザイン、完全なデザインのニーズがあります。個人のQQに連絡してください:505417246
次のWeChatパブリックアカウントに注意してください。WeChatアプレット、Vue、TypeScript、フロントエンド、ユニアプリ、フルスタック、Nodejs、Python、その他の実用的な学習資料を受け取ることができます。
最新かつ最も完全なフロントエンドの知識の概要とプロジェクトのソースコードは、できるだけ早くWeChatに公開されます。いいえ、ご注意ください。ありがとうございます。