这是我的状态示例的外观:
const INITIAL_STATE = {
contents: [ {}, {}, {}, etc.. ],
meta: {}
}
我需要能够以某种方式替换目录数组中的一项,知道其索引,我已经尝试过:
return {
...state,
contents: [
...state.contents[action.meta.index],
{
content_type: 7,
content_body: {
album_artwork_url: action.payload.data.album.images[1].url,
preview_url: action.payload.data.preview_url,
title: action.payload.data.name,
subtitle: action.payload.data.artists[0].name,
spotify_link: action.payload.data.external_urls.spotify
}
}
]
}
action.meta.index
我想用另一个内容对象替换的数组项的索引在哪里,但是我相信这只是将整个数组替换为我传递的这个对象。我也想使用,.splice()
但这只会改变数组?
Splice
改变您需要使用的数组Slice
。而且您还需要concat
切成薄片。
return Object.assign({}, state, {
contents:
state.contents.slice(0,action.meta.index)
.concat([{
content_type: 7,
content_body: {
album_artwork_url: action.payload.data.album.images[1].url,
preview_url: action.payload.data.preview_url,
title: action.payload.data.name,
subtitle: action.payload.data.artists[0].name,
spotify_link: action.payload.data.external_urls.spotify
}
}])
.concat(state.contents.slice(action.meta.index + 1))
}
问题内容: 与此问题类似,但我不想将一个项目的任何出现都替换为列表的内容,而不是将另一个项目替换为另一个。 编辑:明确表示我打算替换 所有 出现的项目,而不仅仅是第一个。(对未在回答中涉及此情况的任何人表示歉意。) 问题答案: 不同的方法:当我进行替换时,我更喜欢从字典的角度进行思考。所以我会做类似的事情 最后一行是标准拼合成语。 这种方法的一个优点(劣势?)是它将处理的多次出现。 [更新:] 或
我想将表单域映射到数据库域。 我有两个数组。。 一个数组是数据,包含作为键的表单字段id和作为值的表单字段值。 我还有一个数组,打算用作地图。此数组的键与表单字段相同,值为数据库字段名。 我想做的是遍历数据数组,在数据键与映射键匹配的地方,给数据数组分配一个新的键,这个键就是映射数组的值。 我的问题是怎么做?我尝试了很多不同的方法,现在我完全迷失在其中。
我当前的数组:
我正在尝试使用JOLT转换https://jolt-demo.appspot.com/. 我想将所有“大师”值替换为“7.11”。 输入: 期望输出: 我似乎无法在不更改/更改数据结构的情况下进行转换或转换。当前方法: 电流输出:
我想通过以下方式更改JButton的颜色: 为了进行更改,我必须补充: 但是,这会删除边缘周围的曲线,从而更改按钮的形状。有没有一种方法可以简单地改变颜色并保留其他属性?另一个例子是当你按下一个按钮而没有改变它的颜色时,颜色的改变(变暗)。 下面是一些代码,说明了这两个按钮之间的区别: 谢谢
问题内容: 我有一个JavaScript数组,我想将其推送到一个新数组中。除了我不想成为。我想将所有项目推入新数组: 甚至更好: 因此,新数组现在包含各个数据数组的所有值。是否有一些速记可用,所以我不必遍历每个人,逐个添加项目? 问题答案: 使用concat函数,如下所示: 的值将为(且保持不变;为结果创建并返回一个新数组)。