标签: mutation

将数组项替换为另一个而不改变状态

这是我的州的例子:

const INITIAL_STATE = {
 contents: [ {}, {}, {}, etc.. ],
 meta: {}
}
Run Code Online (Sandbox Code Playgroud)

我需要能够以某种方式替换内容数组中的项目,知道它的索引,我试过:

      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
            }
          }
        ]
      }
Run Code Online (Sandbox Code Playgroud)

这里action.meta.index就是我想与其他内容对象来代替数组元素的索引,但我相信这只是代替整个数组这一个对象,我路过.我也想过使用.splice()但是这会改变数组吗?

state mutation reactjs redux

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

如何计算一个非常简单的Fortran-77程序中的突变体数量

下周我会在班上做一个关于突变测试的演讲.教授给了我一篇由A. Jefferson Offutt等人撰写的论文"足够突变操作的实验测定".从论文中,我可以得出结论,为程序生成的突变体数量大致与数据引用数乘以数据对象数的乘积成正比.这是一个简单的Fortran-77程序:

FUNCTION Min(I, J)
Min = I
IF (J .LT. I) Min = J
RETURN
Run Code Online (Sandbox Code Playgroud)

作者,即A. Jefferson Offutt说,上述计划共有44个突变体.我只是不知道如何获得44个突变体.有谁知道如何计算数据引用的数量和数据对象的数量,并获得44个突变体?

任何想法将不胜感激.

现在,我相信只有多个数据引用数和数据对象数才能获得44个突变体.其他突变体操纵子也有助于上述Fortran-77程序的突变体总数.我编辑这个问题是为了防止其他人继续回答.我不知道如何关闭问题或标记答案

fortran unit-testing mutation

14
推荐指数
0
解决办法
619
查看次数

从嵌套对象中删除数据而不发生变异

是否有任何优雅的方法从数组中删除对象是一个数组的一部分?我一直在使用React和Redux一段时间,但是每次我必须删除或插入数据而不改变状态时会卡住几个小时.

reducer是一个数组,包含具有ID的对象和带有对象的另一个数组,如下所示:

[
 { id:123,
   items:[
           { id: abc,
             name: albert
           }, 
           ... 
         ]
 }, 
 ... 
]
Run Code Online (Sandbox Code Playgroud)

我收到两个ID,需要删除带有ID的项目abc.

javascript immutability mutation redux

14
推荐指数
1
解决办法
7882
查看次数

将交叉和变异应用于图形(遗传算法)

我正在玩一个遗传算法,我想在其中进化图形.当染色体是图形时,您是否知道应用交叉和变异的方法?

或者我错过了图表的编码,让我在位串上应用"常规"交叉和变异?

非常感谢!任何帮助,即使它与我的问题没有直接关系,我们表示赞赏!

曼努埃尔

artificial-intelligence graph mutation genetic-algorithm

12
推荐指数
1
解决办法
4901
查看次数

跨多个列进行变异以创建新的变量集

我有一个国家和年份级别的面板数据集,我想根据现有变量创建两个新变量。

国家 变量1 变量2 变量3 变种4 平均值_var1 relmean_var1
1910年 德国大学 1 4 10 6 3 0.333
1911年 德国大学 2 3 11 7 1.5 1.3333
1910年 法国航空协会 5 6 8 9 3 1.66667
1911年 法国航空协会 1 4 10 9 1.5 .66667

我想做的是创建两个新的变量集:(1)每年(跨国家)平均值的变量集和(2)相对于年平均值的国家/地区值的变量集。例如,对于 var1(1) 将产生mean_var1和(2)relmean_var1,我希望这些用于所有其他变量。数据集中总共有超过 1000 个变量,但我只会将此函数应用于大约 6 个变量。

我有适用于第一部分的代码,但我想将其尽可能有效地与第二部分结合起来。

library(dplyr)
library(purrr)
df<- df%>% 
            group_by(year) %>%
            mutate_at(.funs = list(mean = ~mean(.)), .vars = c("var1", "var1", "var1", "var4"))
Run Code Online (Sandbox Code Playgroud)

此代码生成名为 var1_mean 的新变量(我更喜欢mean_var1:如何更改此名称?)

对于第二步,我尝试过:

df <- df %>%
map2_dfr(.x = d.test %>%
            select(var1, var2), …
Run Code Online (Sandbox Code Playgroud)

r nested-loops mutation dplyr purrr

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

如何在mutation graphQL Playground中传递变量?

我正在使用阿波罗快递服务器 2.0。我正在尝试在 graphql 操场中执行突变。这是我附上一个带有另一个变量截图的截图的突变。

创建新用户的变异命令 突变变量

当我尝试在 graphql 操场中执行突变命令时出现以下错误。

在此处输入图片说明

请指导我我不正确的地方。

mutation node.js graphql

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

React RTK查询Mutation可以返回值吗?

在 React RTK Query Mutation中可以获得端点的响应。我有一个插入数据库的突变,我需要获取插入的 ID。在我的 API 中:

addRecord: build.mutation({
        query(data) {
            return {
                url: base + 'myControler/SaveDataAsync',
                method: 'post',
                data: data,
            }
        },
    }),
Run Code Online (Sandbox Code Playgroud)

在导入我的钩子后在我的组件中我称它为

const [addRecord] = useAddRecordMutation();
Run Code Online (Sandbox Code Playgroud)

然后在我的提交函数中使用它

    const handleSubmitCustom = async (values) => {

       await addRecord(values);

    }
Run Code Online (Sandbox Code Playgroud)

我需要await addRecord(values);的返回值

mutation reactjs rtk-query

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

为什么我们需要在编码时避免突变?什么是突变?

为什么第二个代码(带有流的代码)比第一个代码更好?

第一:

public static void main(String [] args) {
   List<Integer> values = Arrays.asList(1,2,3,4,5,6);
   int total = 0;
   for(int e : values) {
       total += e * 2;

   }
Run Code Online (Sandbox Code Playgroud)

第二:

   System.out.println(total);
   System.out.println(
           values.stream()
           .map(e-> e*2)
           .reduce(0, (c, e)-> c + e)); 
Run Code Online (Sandbox Code Playgroud)

java lambda mutation java-8 java-stream

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

反应查询 useMutation onError 从未触发

我目前正在我的项目中尝试react-query。

我在处理突变中的错误时遇到了麻烦。

在我的网络选项卡中,我可以确认服务器正在响应代码 400 或 500,我认为这会使 axios 抛出错误,从而触发定义的 onError 函数。

但是,无论 API 调用如何进行,onSuccess 函数始终会被调用。

我在这里缺少什么?提前致谢。

const { mutate } = useMutation(
['mutation'],
() => axios.patch(API_URL, params),
{
  onSuccess: () => {
    //this is always fired, even when response code is 400, 500, etc.
    void queryClient.invalidateQueries('query');
  },
  onError: () => {
    //should do something but never fired
  },
}
Run Code Online (Sandbox Code Playgroud)

);

javascript mutation typescript reactjs react-query

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

更改和重新分配列表(_list =和_list [:] =)之间的Python区别

因此,我经常按照以下模式编写代码:

_list = list(range(10)) # Or whatever
_list = [some_function(x) for x in _list]
_list = [some_other_function(x) for x in _list]
Run Code Online (Sandbox Code Playgroud)

等等

我现在在另一个问题上看到一条评论,它解释了这种方法每次如何创建一个新列表,最好对现有列表进行变异,如下所示:

_list[:] = [some_function(x) for x in _list]
Run Code Online (Sandbox Code Playgroud)

这是我第一次看到此明确建议,我想知道其中的含义是什么:

1)突变是否节省内存?大概是在重新分配后对“旧”列表的引用将降为零,而“旧”列表将被忽略,但是在此之前会有延迟,此时我可能会使用比我使用时所需的更多内存重新分配而不是更改列表?

2)使用变异有计算成本吗?我怀疑就地更改某些内容比创建一个新列表并删除旧列表更昂贵?

在安全性方面,我编写了一个脚本对此进行测试:

def some_function(number: int):
    return number*10

def main():
    _list1 = list(range(10))
    _list2 = list(range(10))

    a = _list1
    b = _list2 

    _list1 = [some_function(x) for x in _list1]
    _list2[:] = [some_function(x) for x in _list2]

    print(f"list a: {a}")
    print(f"list b: {b}")


if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

哪个输出:

list a: [0, …
Run Code Online (Sandbox Code Playgroud)

python list mutation

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