【ES6判断对象是否为空】教程文章相关的互联网学习教程文章

Javascript:用ES6速记修改嵌套对象【代码】

考虑一个函数返回一个嵌套对象,我想在嵌套对象内修改属性. 在下面的示例中,我多次调用该函数,或者需要将其存储在一个临时变量中.有没有一种方法可以在大括号内仅调用一次,并在同一对象内多次传播/修改.const getObject = () => {return {a: {b: {c: 1,d: 2,}},e: 3} }var modifiedD = {...getObject(),a: {b: {...getObject().a.b,d: 4}} }console.log(modifiedD); 解决方法:在… getObject()之后声明键时,它将替换整个值.它不会合...

javascript-嵌套对象中的ES6默认参数【代码】

我想要一个在嵌套对象内部具有默认参数的函数,并且希望能够调用f()或仅指定单个参数.具有带有默认参数的嵌套对象的函数:function f({ a = 1, callback = ({ name, param } = { name: "qwe", param: 123 }) } = {}) {console.log("a:", a);console.log("callback:", callback); }// And I want to run it like this:f(); f({ callback: { params: "456" } });// But 'callback.name' becomes undefined. 解决方法:当解构与默认参数...

Javascript-ES6-可能从对象分解为另一个对象属性?【代码】

这个问题已经在这里有了答案: > object destructuring without var 2个所以我试图找出是否有任何简单的ES6语法可以执行以下操作: 如果我有一个对象const config = { foo: null, bar: null }我想从另一个对象分配这些属性的值,例如:const source = { hello: "hello", world: "world", another: "lorem", onemore: "ipsum" }我想做类似以下的事情,但是没用{ hello:conf...

javascript-ES6具有对象的唯一数组【代码】

我遇到了使用es6创建唯一数组的示例[ ...new Set(array) ]直到我尝试使用对象数组并且它没有返回唯一数组,这似乎都可以正常工作. 即let item = [ ...new Set([{id:123,value:'test'},{id:123,value:'test'}]) ];这是为什么 ?解决方法:Why is that ?依documentationThe Set object lets you store unique values of any type, whetherprimitive values or object references.现在,该Set构造函数中对每个数组的引用都将不同,因此构造...

javascript – 将对象映射到ES6中的对象数组【代码】

如何在保留键名的同时将对象转换为对象数组?// actual obj = {key1: null,key2: "Nelly",key3: [ "suit", "sweat" ] } // expected arr = [{ key2: "Nelly" },{ key3: [ "suit", "sweat" ] } ]目前我的解决方案是……var arr = Object.keys(obj).map(key => { if (obj[key]) return { key: obj[key] } });返回arr = [undefined,{ key: "Nelly" },{ key: [ "suit", "sweat" ] } ]解决方法:.map()返回与原始数组长度相同的数组.像...

javascript – 这是克隆ES6中对象的好方法吗?【代码】

谷歌搜索“javascript克隆对象”带来一些非常奇怪的结果,其中一些是绝望的过时,有些只是太复杂,不是那么容易:let clone = {...original};这有什么不对吗?解决方法:这对于浅层克隆是有益的. object spread is a standard part of ECMAScript 2018. 对于深度克隆,你需要一个different solution. const clone = {… original} to shallow clone const newobj = {… original,prop:newOne}以不可变的方式将另一个道具添加到原始文件...

javascript – 调用ES6方法时的绑定上下文.如何从称为回调的方法中访问对象?【代码】

我试图围绕ES6中的类的语法.同时通过Bonnie Eisenman的Learning React Native学习Fabric本土. 当回调是一个Class“方法”时,我遇到了一个关于在回调中访问它的问题.我知道在回调中的词汇问题已经在StackOverflow上多次提出.例如在How to access the correct `this` context inside a callback?. 根据我在网上的研究,我遇到了一个解决方案.但我不确定这是在ES6中这样做的正确方法. 当我尝试以下内容时,我的问题出现了:class Weathe...

javascript – ES6 / ES2015对象解构和更改目标变量【代码】

如何在对象破坏期间重命名目标?const b = 6; const test = { a: 1, b: 2 }; const {a, b as c} = test; // <-- `as` does not seem to be valid in ES6/ES2015 // a === 1 // b === 6 // c === 2解决方法:您可以分配新的变量名称,如此MDN Example中所示var o = { p: 42, q: true };// Assign new variable names var { p: foo, q: bar } = o;console.log(foo); // 42 console.log(bar); // true 所以,在你的情况下,代码将是这样...

javascript – ES6对象解析默认参数【代码】

我试图弄清楚是否有一种方法可以使用默认参数的对象解构而不必担心对象被部分定义.考虑以下:(function test({a, b} = {a: "foo", b: "bar"}) {console.log(a + " " + b); })(); 例如,当我用{a:“qux”}调用它时,我在控制台中看到qux undefined,而我真正想要的是qux bar.有没有办法实现这一点,而无需手动检查所有对象的属性?解决方法:是.您也可以在解构中使用“默认值”:(function test({a = "foo", b = "bar"} = {}) {console....

javascript – 使用spread运算符的ES6对象克隆也在修改输入【代码】

我有一个相当深的接口声明,看起来像这样:export interface Job {JobId: JobId; // type JobId = stringUserId: UserId; // type UserId = stringJobName: string;AudioFile: JobAudioFile; // this is an interfaceStatus: JobStatus; // this is an enumTracks: JobTracks[]; // 'JobTracks' is an enumResults: JobResults; // this is an interfaceTimestamps: JobTimestamps // interface}这个接口的大多数成员本身就是接口,一...

javascript – 如何在es6中将大对象映射到数组【代码】

参见英文答案 > Converting a JS object to an array using jQuery 18个假设我有大对象var object = { a: 1, b: 2, c: 3, d:4, e:5, f:6, g:7, h:8, i:9, j:10 ...}; var array = [];输出是[1,2,3,4,5,6,7,8,9,10 …] 我如何将对象映射到es6中的数组?请帮我.解决方法:您可以使用键,对它们进行排序并返回数组中的值.var object = { a: 1, b: 2, c: 3, d:4, e:5, f:6, g:7, h:8, i:9, j:10}; va...

javascript – V8:ES6代理在定位自定义对象时不支持迭代协议?【代码】

我正在使用V8 API来创建JavaScript对象.其中一些对象通过在Symbol.iterator属性上设置本机(截获的)函数来支持迭代. 通过for...of迭代这样的对象非常有效.但是,如果我将它包装在空代理中(例如,让x = new Proxy(obj,{});),则生成的对象不可迭代,如果尝试进行尝试,则会抛出带有“非法调用”消息的TypeError迭代它. 包装标准阵列不会出现此问题.这是V8的错误吗?解决方法:Wrapping a standard array doesn’t exhibit this issue. 是的...

javascript – ES6从对象中获取随机元素而不重复【代码】

我有一个应该呈现随机颜色的功能,但不重复颜色. 意思是如果随机选择蓝色,则无法再次选择.当然,这意味着需要一个默认值.我在考虑使用switch语句. 这是我目前的代码:const colors = {grey: '#BDC8D1',blue: '#0500FF',pink: '#FF00C7',orange: '#FF7A00'}const randomColor = () => {let keys = Object.keys(colors)return colors[keys[keys.length * Math.random() << 0]]}解决方法:您可以“使用”一系列有效值来返回.通过消费我的...

javascript – 为什么在声明的对象上解析ES6有问题?【代码】

我有一个问题,或者更奇怪的情况.我正在使用https://es6console.com. 我想使用解构并为已声明的变量赋值属性.看起来在我声明对象的地方存在问题.请打开https://es6console.com/jm6e72c7/并单击Transform to ES5.有一种奇怪的行为,我在变量之后声明了对象.// not working let ip, port;let config = {ip: 'ip',port: 'port' }({ip, port} = config)console.log(ip);//working let obj = {name: 'name',age: 'age' }let name, age;({n...

javascript – 使用ES6过滤使用数组的对象【代码】

如何使用ES6找到ARRAY的长度:var x = [{a:"apple", b:"Baloon"},{a:"elephant", b:"dog"}];var results = x.filter(aValue => aValue.length > 3);console.log(results);注意:如果这是单独的数组列表,aValue.length就可以工作了.但是,因为这些是分配给属性的值.防爆; a:苹果,需要差异方法. 我需要更换“aValue.length”以找到大于3的值的长度,所以答案是苹果,气球和大象?解决方法:这将满足您的需求var results = x.filter(val ...