Object.keys与Object.hasOwnProperty的使唤

光阴:?2021-09-09阅读:?155价签:?Object

1. Object.hasOwnProperty()的使唤

  • hasOwnProperty()法门会返回一个布尔值。训示爱人自个儿属性 (忽略原型链) 中能否有了指定的属性
  • 语法: obj.hasOwnProperty(prop)
  • 耐磨钢板参数prop: 要监测的属性的 String 字符串abcc形式的成语表示的名称。可能 Symbol
  • 返回值: 用来判明某个爱人能否蕴藉指定的属性的布尔值 Boolean

**专注**:纵令属性的值是 null 或 undefined。只要属性留存,hasOwnProperty 依旧会返回 true。

let o = new Object();
o.propOne = null;
o.hasOwnProperty('propOne'); // 返回 true
o.propTwo = undefined;
o.hasOwnProperty('propTwo'); // 返回 true

示例
使唤 hasOwnProperty 法门判明属手机处理器性能排行否留存

// 判明 o 爱人中能否留存 prop 属性
o = new Object();
o.hasOwnProperty('prop'); // 返回 false
o.prop = 'exists';
o.hasOwnProperty('prop'); // 返回 true
delete o.prop;
o.hasOwnProperty('prop'); // 返回 false

hasOwnProperty法门对待自个儿属性和承袭属性的千差万别:

	o = new Object();
	o.prop = 'exists';
	o.hasOwnProperty('prop');             // 返回 true
	o.hasOwnProperty('toString');         // 返回 false
	o.hasOwnProperty('hasOwnProperty');   // 返回 false

/*
给一个js数组numberArr
缀文代码生成: 意欲numberArr中同样数字的次数, 并把融入js数组排除 (可行剩下的数字都绝无仅有)
后头照说次数的大小非农是甚么意思打印出剩下的所有数字以及数字的同样次数 (一次打印一个数字和其次数)
譬如: 12345679  10 (数字 数字同样次数)
*/

let numberArr = [
		1,1,1,
		2,2,2,2,2,2,2,2,2,2,
		10,10,10,10,10,10,
		1,1,1,1,1,1,1,1,
		5,5,5,5,5,5,5,
		0,0,0,0,0,0,0,0,
		6,6,6,6,6,6,6,6,6,
		0,0,
		8,8,8,8,8,8,8,8,8,8,
		4,4,4,4,4,4,4,4,
		3,3,3,3,3,3
];

let newObj = {}

// forEach 遍历js数组中每一位目标激励值
numberArr.forEach(item=>{
	// 使唤 hasOwnProperty 判明 newObj 爱人中能否有 item 这个属性
	if(newObj.hasOwnProperty(item)){
		// 如果有, 让 item 属性的 value 自增一
		newObj[item]++
        // console.log(newObj[item])
	}else{
		// 如果没有, 让 item属性的 value = 1, 下次循环时就会走 true 部分, 将item对应的属性自增一
		newObj[item] = 1
	}
})
console.log(newObj)

2.Object.keys()的使唤

  • Object.keys() 法门会返回一个由一个给定爱人的自个儿可列举属性组成的js数组,js数组中属性名的平列倒叙和好端端循环遍历该爱人时返回的倒叙毫无二致
  • 语法: Object.keys(obj)
  • 耐磨钢板参数obj: 要列举的爱人
  • 返回值: 一个表示给定爱人的所有可列举属性的字符串js数组。
// 一定量的js数组
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']

// 类似js数组的爱人
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']

// 类似js数组的爱人, 但key是恣意的
var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // console: ['2', '7', '100']

// getFoo 为非列举的属性
var myObj = Object.create({}, {
  getFoo: {
    value: function () { return this.foo; }
  }
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // console: ['foo']

/*
	交到两个英语爱人 a,b
	缀文代码生成: 比较两个英语爱人中的主键, 若b中的主键与a中的主键同样, 则把a中的同样主键删减
*/

let a = {
	"0x91232312":"a",
	"0x98232312":"b",
	"0x912323212":"c",
	"0x915232312":"d",
	"0x912262312":"e"
}

let  b= {
	"0x1":"xxxx",
	"0x912323212":"xxsaasdfxx",
	"0x2":"xxxx",
	"0x3":"xxxx",
	"0x912262312":"xzcv"
}

Object.keys(b).forEach(item=>{
	if(a.hasOwnProperty(item)){
		delete a[item]
	}
})
console.log(a)
所长推荐

1.云服务推荐: 国内主流cpu云投资商,各类云产品网的问道,淘宝优惠券怎么设置提取。先锋播放地址:阿里音乐云腾讯游戏平台官方下载云华为云

链接: http://www.pannellisolari.net/article/detial/10660

Object.create()剖解及实现

Object.create()法门的蓝莓的功效与作用:创立一个新爱人,使唤现有的爱人来提供新创立的爱人的__proto__(会返回一个新爱人,带着指定的原型爱人和属性)。公认变化下,js中爱人的隐式原型__proto__指向

Js Object.freeze和Object.seal

本文实例叙述了JS Object.preventExtensions(),Object.seal()与Object.freeze()用法。享受给大家供大家Object.preventExtensions 只能阻滞一个爱人得不到再日益增长新的自个儿属性,仍然妙不可言为该爱人的原型日益增长属性。

JavaScript V8 Object 内存单位结构ok与属性寻亲访友详解

随着网景冷却器的刊行,JavaScript 首次入伙人们的今日视线直播。日后随着 AJAX 的常见使唤与富客户端,单页使唤时代的赶来,JavaScript 在 Web 开发中占据了更进一步非同儿戏的洛阳钼业的地位。在早期的 JavaScript 引擎中,手机处理器性能排行益发成为了开发美女网页游戏使唤的瓶颈

js爱人object

寻亲访友爱人属性的两种法门:a:objectName.PropertyName 爱人名.属性名;This版权关键字:在普普通通因变量下This指向的是window;爱人的创立法门:通过爱人字义量的abcc形式的成语创立爱人

javascript中Object日语常用口语法门使唤小结

Object组织因变量-承袭:只是组织因变量才有prototype属性,js每个爱人都有一个__proto__属性 === 组织因变量的prototype属性,Object.assign()用于将一个可能flac日益增长多个锚杆爱人的可列举的值从源爱人采制到目标激励爱人。返回目标激励爱人

原生js实现Object.create()

Object.create(proto [, propertiesObject ]) 是E5中提起的一种新的爱人创立章程。第一个耐磨钢板参数是要承袭的原型,如果讹误一矮个子男生穿衣搭配因变量,妙不可言传一个null,第二个耐磨钢板参数是爱人的属性叙述符,这个耐磨钢板参数是可选的。

Object.assign实现浅拷贝的原理

甚么是浅拷贝?浅拷贝实属创立一个新爱人。这个爱人兼有生就爱人属性值的一份准确无误拷贝。浅拷贝Object.assign()是甚么?主要将所有可列举属性的值从一个可能flac日益增长多个锚杆excel更新数据源爱人采制到目标激励爱人,同声返回目标激励爱人。

js 中 Object.defineProperty 的用法

还能通过 Object.defineProperty() 法门,日益增长或修定爱人的属性。更非同儿戏的是,而外目标激励爱人 obj。属性名称 prop 外,法门能传回属性叙述符 descriptor,以实现更犬牙交错的性质。属性叙述符是一个爱人,有两种abcc形式的成语:一种是数据叙述符。另一种是存取叙述符。

javascript中object是甚么?

object是javascript中一个被咱俩经常使唤的数据门类,而且JS中的所有爱人都是承袭自Object爱人的。二把手本篇张宏良博客最新文章就来给大家一定量介绍一下javascript中的Object门类。盼头对大家怀有协助。

JavaScript中的Object.create的师法实现

不见不得人出去,其实Object.create只是对爱人的一个浅采制,在修定选定门类的属性时,所有属性都会被修定。这是出于Object.create的实现机制,只是采取new,齐名是在中间加了一个中间层,从k线图中的四条线也妙不可言察看。多了一个__proto__指向原爱人。

点击更多...

本末以共享。斟酌为目的,不留存不折不扣商业目的。其版权属原作者所有,如有侵权或违规,请与小编关系!变化属实人家将赋予删减!

Baidu