gpt4 book ai didi

javascript - jscodeshift 更改对象文字值

转载 作者:行者123 更新时间:2023-12-01 16:35:36 25 4
gpt4 key购买 nike

使用 jscodeshift,我该如何转换

// Some code ...

const someObj = {
x: {
foo: 3
}
};

// Some more code ...



// Some code ...

const someObj = {
x: {
foo: 4,
bar: '5'
}
};

// Some more code ...

?

我努力了

module.exports = function(file, api, options) {
const j = api.jscodeshift;
const root = j(file.source);

return root
.find(j.Identifier)
.filter(path => (
path.node.name === 'someObj'
))
.replaceWith(JSON.stringify({foo: 4, bar: '5'}))
.toSource();
}

但我最终得到

// Some code ...

const someObj = {
{"foo": 4, "bar": "5"}: {
foo: 3
}
};

// Some more code ...

这表明 replaceWith只是更改键而不是值。

最佳答案

您必须搜索 ObjectExpression而不是为Identifier :

module.exports = function(file, api, options) {
const j = api.jscodeshift;
const root = j(file.source);

j(root.find(j.ObjectExpression).at(0).get())
.replaceWith(JSON.stringify({
foo: 4,
bar: '5'
}));

return root.toSource();
}

Demo

关于javascript - jscodeshift 更改对象文字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43340464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com