相关疑难解决方法(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万
查看次数

如何在ES6中将结构化为动态命名的变量?

我们假设我有以下对象:

const user = { 
  id: 42, 
  displayName: "jdoe",
  fullName: { 
      firstName: "John",
      lastName: "Doe"
  }
};
Run Code Online (Sandbox Code Playgroud)

而我只想要idfullName.

我会做以下事情:

const { id, fullName } = user
Run Code Online (Sandbox Code Playgroud)

轻松,对吧?

现在让我们假设我想根据另一个变量的值来进行解构fields.

const fields = [ 'id', 'fullName' ]
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:我如何根据一系列密钥进行解构?

我无耻地尝试了以下但没有成功:

let {[{...fields}]} = userlet {[...fields]} = user.有什么办法可以做到这一点吗?

谢谢

javascript ecmascript-6

43
推荐指数
5
解决办法
1万
查看次数

什么是解构分配及其用途?

我一直在阅读ES6中介绍的解构分配.

这种语法的目的是什么,它为什么被引入,以及它在实践中如何使用的一些例子?

javascript destructuring ecmascript-6

13
推荐指数
1
解决办法
1310
查看次数

连接蓝牙模块后数据丢失

客观的

我试图在连接后从蓝牙设备返回数据,因为要使用读写功能,需要一些数据。示例数据name, overflowServiceUUIDs, solicitedServiceUUIDs, mtu, rssi...和许多其他数据。因为如果我想读或写,我需要一些属性。我正在使用图书馆react-native-ble-plx

怎么了?

设备连接后,我丢失了一些值。

重要的

type DeviceState = {
  connected: boolean;
  services: Service[];
  device: Device | null;
  characteristics: Record<string, Characteristic[]>;
};

const INITIAL_DEVICE_STATE = {
  connected: false,
  services: [],
  device: null,
  characteristics: {},
};
Run Code Online (Sandbox Code Playgroud)
const [adapterState, setAdapterState] = useState(false);
const [bleDevices, setBleDevices] = useState<Device[]>([]);
const [isScanning, setIsScanning] = useState(false);
const [connectedDevice, setConnectedDevice] = useState<DeviceState>(
    INITIAL_DEVICE_STATE,
);

# The state isScaning is used to be if we are scanning devices.
# The connectedDevice …
Run Code Online (Sandbox Code Playgroud)

bluetooth bluetooth-lowenergy typescript react-native react-native-ble-plx

11
推荐指数
1
解决办法
610
查看次数

获取一个Javascript关联数组?

我在Javascript中有一个关联数组对象,我只需要一部分.使用常规数组,我只使用切片来获取我需要的部分,但显然这不适用于关联数组.是否有任何内置的Javascript函数,我可以使用它只返回此对象的一部分?如果没有,那么这样做的最佳做法是什么?谢谢!

javascript arrays associative-array

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

创建子集对象,仅包含现有对象的某些属性

最好用例子来解释.以下工作在es6中创建一个由现有对象的一些键组成的对象:

var o = {a:1, b: 2, c: 3}
var {a, c} = o
var subsetObj = {a, c} // will be: {a:1, c:3}
Run Code Online (Sandbox Code Playgroud)

这里有两个缺点:

  1. 它花了两个参数和两行来创建所需的子集对象
  2. 我们不得不通过创建本地不需要的中间变量ac变量来污染局部变量范围,除非作为创建子集对象的方法.

有没有办法在一个声明中完成相同的事情,而不引入不必要的本地人ac

javascript ecmascript-6

9
推荐指数
1
解决办法
8585
查看次数

在没有 ORM 或 ODM 的情况下在 Nodejs 中创建模型

我很惊讶为什么这么难找到。

我正在尝试使用适当的 sql 将我的整体架构转换为我的 Node Express 应用程序的 3 层架构。

存储库

在架构更改之前1 个文件entry.js 1 个具有业务逻辑的端点 具有原始 sql 的函数,在验证 res.body 对象后调用

  • 后端
    • 源代码
      • 服务
        • 服务1
      • 路线
        • service1Route [来自entry.js的路由处理/service1]
      • models -service1Model [包含sql函数,而不是模式]
  • Entry.js [主要快递应用程序]

使用的技术 - 使用 .js 而不是 .ts - Nodejs - Express -

约束 - 我无法使用 postgres 或 sequlize,因为它们不支持我正在使用的专有数据库。

假设

  • postgres 或 mongoose 拥有流行的 ORM 和 ODM,没有它们你就无法使用它们,因此开发人员(作为一个好的实践)被迫创建模型。
  • 现在我想通过这样的验证创建我自己的模型/模式。

  1. 如何在没有 ORM 或 ODM 的情况下创建模型。
  2. 模式和模型之间有区别吗?
  3. 在模型文件夹中编写 sql 函数:这是使用此架构模式的正确方法。
  4. 如果模式/模型是在模型文件夹中创建的,那么 sql 查询驻留在哪里?

我已经尝试过什么?

  1. 用于使用 res.body 对象中所需的键验证对象

sql database-schema node.js express odm

8
推荐指数
1
解决办法
1962
查看次数

解构赋值以构建新对象 - 有可能吗?

是否可以使用解构赋值语法来将数据对象提取到另一个对象而不是不同的变量中?

产生不同变量的示例 (foo, bar):

var {p: foo, q: bar} = {p: 42, q: true};
 
console.log(foo); // 42
console.log(bar); // true  
Run Code Online (Sandbox Code Playgroud)

相反,我需要创建一个包含以下属性的新对象:

var n = {
foo: 42,
bar: true
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs

7
推荐指数
1
解决办法
8092
查看次数

使用另一个对象的属性子集获取对象

我知道这个现有的问题,但我只对普通的javascript解决方案感兴趣(没有像lodash这样的外部库).

什么是最干净的方式(包括所有ES6的善良和超越 - 像对象休息和传播等)从javascript中获取具有来自另一个对象的道具子集的对象?

可以说,我要挑foo,barbazsource对象.我目前有两个解决方案,我不喜欢它们:

1.

const result = {
  foo: source.foo,
  bar: source.bar,
  baz: source.baz
};
Run Code Online (Sandbox Code Playgroud)

2.

const { foo, bar, baz } = source;
const target = { foo, bar, baz };
Run Code Online (Sandbox Code Playgroud)

第二个是较短但是它用一些变量污染了当前的执行范围,并且它们的列表无论如何都必须写入两次.

PS.我也不想Object.prototype用一些辅助方法扩充或调用一些自定义函数来实现这一点.

javascript

6
推荐指数
1
解决办法
103
查看次数

将对象属性复制到新对象的最佳方法?

我正在学习React,在此过程中,我正在开发自己的JavaScript技能,这些技能目前处于初学者水平。我有一个代表注册表单的组件,表单的输入值(用户名,电子邮件密码等)存储在该组件的状态中。

表单的状态如下:

this.state = {
    username: "",
    password: "",
    email: "",
    firstName: "",
    lastName: "",
    country: "",
    region: "",
    phoneNumber: "",
    selectCountries: []
};
Run Code Online (Sandbox Code Playgroud)

留下来,我想创建一个新对象以传递给注册方法,该方法仅包括用户名,电子邮件和密码字段。最好的方法和最快的方法是什么?

目前,我要做的是手动映射所需的属性,如下所示:

const { username, email, password } = this.state;

let registrationData = {
    username, email, password
};
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?有什么办法可以将这两个语句合并为一个?

任何输入将不胜感激,非常感谢!

javascript object variable-assignment ecmascript-6 reactjs

6
推荐指数
0
解决办法
62
查看次数