相关疑难解决方法(0)

单行从ES 6中的对象获取一些属性

如何编写一个函数,在ES6中以最紧凑的方式只占用少量属性?

我已经提出了使用解构+简化对象文字的解决方案,但我不喜欢在代码中重复的字段列表.

有更薄的解决方案吗?

(v) => {
    let { id, title } = v;
    return { id, title };
}
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-harmony ecmascript-6 ecmascript-next

145
推荐指数
7
解决办法
5万
查看次数

仅返回Javascript中对象数组中的某些属性

如果我有这样的对象

var object = function(key,text)
{
    this.key = key;
    this.text = text;
}
Run Code Online (Sandbox Code Playgroud)

并创建这些对象的数组

var objArray = [];
objArray[0] = new object('key1','blank');
objArray[1] = new object('key2','exampletext');
objArray[2] = new object('key3','moretext');
Run Code Online (Sandbox Code Playgroud)

有没有办法我只能检索数组中所有对象的一个​​属性?例如:

var keyArray = objArray["key"]; 
Run Code Online (Sandbox Code Playgroud)

上面的例子没有将set keyArray返回给任何东西,但我希望它会被设置为这样的东西:

keyArray = [
    'key1',
    'key2',
    'key3']
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在不迭代objArray并手动将每个键属性复制到键数组的情况下执行此操作?

javascript arrays javascript-objects

21
推荐指数
1
解决办法
3万
查看次数

优雅的方式只复制对象的一部分

我想通过从中复制一些属性来从较大的对象创建一个新对象.我知道的所有解决方案都不是很优雅,我想知道是否有更好的选择,如果可能的原生(没有像下面代码末尾那样的附加功能)?

这是我现在通常做的事情:

// I want to keep only x, y, and z properties:
let source = {
    x: 120,
    y: 200,
    z: 150,
    radius: 10,
    color: 'red',
};

// 1st method (not elegant, especially with even more properties):
let coords1 = {
    x: source.x,
    y: source.y,
    z: source.z,
};

// 2nd method (problem: it pollutes the current scope):
let {x, y, z} = source, coords2 = {x, y, z};

// 3rd method (quite hard to read for such simple task): …
Run Code Online (Sandbox Code Playgroud)

javascript javascript-objects

6
推荐指数
3
解决办法
474
查看次数