我有一个函数,我试图从选项中解构几个参数
fetchArtifactsWithFiltersOG = async options => {
const { nextPage, fromSearch } = options;
}
Run Code Online (Sandbox Code Playgroud)
问题:
但是,在某些用例中options are not passed,在这种情况下它会抛出nextPage of undefined error.
在这种情况下我如何解构我不确定选项是否只是有时被传递。没有使我的语法 ES5。
我想知道如何.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) 我试图找出一种基于属性名称的动态列表/数组来解构对象的方法。
说,我有一个对象:
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) 考虑这个“复杂”对象:
const obj = {
nestedArray: [
{ stuff: "things" }
],
nestedObj: {
key1: "value1",
key2: "value2"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种优雅的单行解决方案来解构key1、key2和stufffrom 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 要求太高了?我非常乐意接受“不”的答案,只要它提供了一个很好的解释为什么不。
假设我们有以下对象:
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)
但是如果我们想获取第一个对象的类别字段会怎样呢?
我经历过数组解构语法,这是很好理解的.
当我们说时,我们到底在做什么var {p, q} = o;?
是p和q在var {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) 是否可以覆盖分配的多个变量 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 是否支持箭头函数中数组的解构?例如
const items = [ [1, 2], [3, 4] ];
const sums = items.map( [a, b] => a + b );
Run Code Online (Sandbox Code Playgroud) 我有这个嵌套的对象,它也包含一个数组。
result:{
"a": [{ "b": { "c": 1,
"d": 2,
"e": 3
},
"f": 0
}]
}
Run Code Online (Sandbox Code Playgroud)
如果我需要d的值,如何使用ES6对该对象进行解构?