标签: destructuring

解构 JavaScript 返回错误

我有一个函数,我试图从选项中解构几个参数

  fetchArtifactsWithFiltersOG = async options => {
   
    const { nextPage, fromSearch } = options;

  }
Run Code Online (Sandbox Code Playgroud)

问题:

但是,在某些用例中options are not passed,在这种情况下它会抛出nextPage of undefined error.

在这种情况下我如何解构我不确定选项是否只是有时被传递。没有使我的语法 ES5。

javascript destructuring ecmascript-6

0
推荐指数
1
解决办法
68
查看次数

如何使用 JavaScript 正确销毁地图函数中的对象?

我想知道如何.map使用 javascript 来破坏函数内的对象,我有 React js 组件,并且在return方法中我有以下代码:

return (
    <>
      {setItems.map(setItem => (
      
      const { childContentfulPartFeatureSetLearnMoreOptionalTextTextNode: learnNode} = setItem
    ....
    </>
Run Code Online (Sandbox Code Playgroud)

我有下一个错误:Parsing error: Unexpected token ... = setItem,我想这是什么

EsLint错误并用于// eslint-disable-next-line禁用它,但它不起作用。

UPD 完整返回码:

return (
<div className={generalServiceItemClassName} key={guuid()}>
  {setItems.map(setItem => (
   const { childContentfulPartFeatureSetLearnMoreOptionalTextTextNode: learnNode} = setItem

    <div
      key={guuid()}
      className={cx(columnSizeClass, "service-items__item")}
      data-test="service-items"
    >
      {setItem.learnMore ? (
        <LearnMore
          className="service-items__item-learn-more-container"
          learnMoreLink={setItem.learnMore}
          text={}
          textClassName="service-items__item-texts-learn-more"
          learnMoreText={learnNode ? learnNode.setItem : null}
        >
          {renderItem(setItem)}
        </LearnMore>
      ) : (
        renderItem(setItem) …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring reactjs

0
推荐指数
1
解决办法
808
查看次数

动态对象解构

我试图找出一种基于属性名称的动态列表/数组来解构对象的方法。

说,我有一个对象:

let individual = {
    id: 1,
    fullname: 'User Name',
    sex: 'M',
    birthdate: new Date(1975, 3, 15)
};
Run Code Online (Sandbox Code Playgroud)

和一个带有属性名称的动态数组:

let properties = ['id', 'fullname','sex'];
Run Code Online (Sandbox Code Playgroud)

有没有办法简单地获取仅具有数组中指定属性的结果对象:

{
    id: 1,
    fullname: 'User Name',
    sex: 'M'
}
Run Code Online (Sandbox Code Playgroud)

javascript destructuring

0
推荐指数
1
解决办法
55
查看次数

复杂解构:数组第一个索引内的对象位于另一个对象内

考虑这个“复杂”对象:

const obj = {
    nestedArray: [
        { stuff: "things" }
    ],
    nestedObj: {
        key1: "value1",
        key2: "value2"
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种优雅的单行解决方案来解构key1key2stufffrom obj

我当前的解决方案如下所示并且工作得很好:

const { nestedArray, nestedObj: { key1, key2 } } = obj
const { stuff } = nestedArray[0]
Run Code Online (Sandbox Code Playgroud)

但我宁愿在一行中这样做:

const { array[0]: { stuff }, nestedObject: { key1, key2 } } = obj
Run Code Online (Sandbox Code Playgroud)

但显然这行不通。有什么方法可以像我想要的那样在一行中完成此操作吗?还是我对 ES6 要求太高了?我非常乐意接受“不”的答案,只要它提供了一个很好的解释为什么不。

javascript destructuring ecmascript-6

0
推荐指数
1
解决办法
440
查看次数

在 JavaScript 中解构数组的第一个对象

假设我们有以下对象:

const page = {
        name: 'Page 1',
        page_category: [
          {
            postId: 1,
            catId: 1,
            category: {
              id: 1,
              name: 'category 1'
            }
          },
          {
            postId: 3,
            catId: 2,
            category: {
              id: 2,
              name: 'category 2'
            }
          },
        ]
      }
Run Code Online (Sandbox Code Playgroud)

要以解构方式获取 page_category 数组中的第一个对象,我们将这样做:

const { page_category: [first] } = page
Run Code Online (Sandbox Code Playgroud)

但是如果我们想获取第一个对象的类别字段会怎样呢?

javascript arrays destructuring ecmascript-6

0
推荐指数
1
解决办法
398
查看次数

对象解构语法 - ES6

我经历过数组解构语法,这是很好理解的.

当我们说时,我们到底在做什么var {p, q} = o;

pqvar {p, q}从性质不同o,即,'p''q'?如是,

为什么var {a, b} = o;不起作用?

> var o = {p: 42, q: true};
    undefined
> p
    ReferenceError: p is not defined
> q
    ReferenceError: q is not defined
> o['p']
    42
> o['q']
    true
> var {p, q} = o;
    undefined
> p
    42
> q
    true
> var {a, b} = o;
    undefined
> …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-6

-1
推荐指数
2
解决办法
1171
查看次数

Javascript 覆盖解构的 let 变量

问题

是否可以覆盖分配的多个变量 let

const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})

let {a, b, c, d} = somefunction(3)
Run Code Online (Sandbox Code Playgroud)

现在,在使用不同的参数调用 someFunction 之后,如何在一个语句中覆盖 {a, b, c, d} ?

可能的解决方案

不工作!(明显地)

const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})

let {a, b, c, d} = somefunction(3)
{a, b, c, d} = somefunction(5)
Run Code Online (Sandbox Code Playgroud)

在职的

这似乎有效,但我更漂亮会删除前导分号(+ 语法很疯狂)

const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})

let {a, b, c, d} = somefunction(3)
;({a, b, c, d} …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring

-1
推荐指数
1
解决办法
177
查看次数

我可以在 Javascript 箭头函数中解构数组吗?

任何版本的 Javascript 是否支持箭头函数中数组的解构?例如

const items = [ [1, 2], [3, 4] ];
const sums = items.map( [a, b] => a + b );
Run Code Online (Sandbox Code Playgroud)

javascript destructuring arrow-functions

-1
推荐指数
1
解决办法
529
查看次数

使用ES6进行对象销毁

我有这个嵌套的对象,它也包含一个数组。

result:{
"a": [{ "b": { "c": 1,
               "d": 2,
               "e": 3
              },
        "f": 0
      }]
}
Run Code Online (Sandbox Code Playgroud)

如果我需要d的值,如何使用ES6对该对象进行解构?

javascript arrays nested object destructuring

-3
推荐指数
1
解决办法
98
查看次数