小编Ale*_*lex的帖子

JavaScript对象的动态深度设置

给定对象属性路径的字符串,如何动态设置此属性.

给定此示例对象:

var obj = {
    a: {
        b: [ { c: 'Before' } ]
    }
};
Run Code Online (Sandbox Code Playgroud)

它应该能够使用这样的辅助函数设置值:

setToValue(obj, 'After', 'a.b.0.c');
Run Code Online (Sandbox Code Playgroud)

我用以下代码尝试了它.但如果变量不是引用,则父级是副本.

function setToValue(obj, value, path) {
    var arrPath = path.split('.'),
        parent = obj;

    for (var i = 0, max = arrPath.length; i < max; i++) {
        parent = parent[arrPath[i]];
    }

    parent = value;
}
Run Code Online (Sandbox Code Playgroud)

javascript object

23
推荐指数
2
解决办法
2万
查看次数

需要将F#命令式代码转换为功能性的想法

我有一个功能女巫是以命令式的方式编写的,无法理解如何将其转换为更强大的功能方法.

该函数接受一系列字符串并返回一个seq的元组,其中每个元组由输入中的2,7,12,...和5,10,15,...项组成.

例:

输入= {"Lorem","ipsum","dolor","set","amet","consectetuer","adipiscing","elit","Aenean","commodo","ligula","eget" ,"dolor","Aenean","massa"}

Ouput = {("ipsum","amet"),("adipiscing","commodo"),("eget","massa")}

let convert (input : seq<string>) : seq<(string * string)> =
    let enum = input.GetEnumerator()
    let index = ref 0
    let first = ref ""
    let second = ref ""

    seq {
        while enum.MoveNext() do
            let modIndex = !index % 5
            index := !index + 1

            if (modIndex % 2 = 0 && !first = "") then first := enum.Current
            if (modIndex % 5 = 0 && !second = "") then second …
Run Code Online (Sandbox Code Playgroud)

f# functional-programming imperative

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