将字符串转换为数组

发布于 2024-10-02 10:15:28 字数 491 浏览 2 评论 0原文

在我的 user.data.crop_position 中,值是“[ 100, 100, 200, 200 ]”;

            var crop_position=user.data.crop_position.slice(1,user.data.crop_position.length-2);
        $('#cropbox').Jcrop({
            setSelect: crop_position,
            onChange: showPreview,
            onSelect: showPreview,
            aspectRatio: 1
        });

这样做我的 jcrop 没有在设定位置选择我该怎么办 这是由于我传入的字符串如何删除它,

我知道这是一个愚蠢的问题,但我多次遇到此类问题,也请建议我将来不会再出现此类问题。

问候

拉胡尔

in my user.data.crop_position value is "[ 100, 100, 200, 200 ]";

            var crop_position=user.data.crop_position.slice(1,user.data.crop_position.length-2);
        $('#cropbox').Jcrop({
            setSelect: crop_position,
            onChange: showPreview,
            onSelect: showPreview,
            aspectRatio: 1
        });

doing this my jcrop is not select at set postion what can i do
it is due to the string i am passing in how can i remove this ,

i know this is silly question but i got these kind of problem many time also please suggest me that in future these kind of problem dont came.

regards

rahul

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小猫一只 2024-10-09 10:15:28

Jcrop 手册setSelect 采用数组,而不是字符串。

[100, 100, 200, 200] // rather than
'[100, 100, 200, 200]'

如果你不能改变输入格式,至少你可以使用 $.parseJSON< 来解析它/code>在将其传递给 Jcrop 之前:

var crop_position = $.parseJSON(user.data.crop_position);

编辑: 如果有必要(双引号实际上存在于字符串值中),您可以使用 $.parseJSON 两次,首先解码编码的字符串值,然后解码编码字符串中的数组:

    var crop_position = $.parseJSON($.parseJSON(user.data.crop_position));

或者只是去掉 $.parseJSON 之前的双引号:

    var crop_position = $.parseJSON(user.data.crop_position.slice(1, -1));    

The Jcrop Manual says that setSelect takes an array, not a string.

[100, 100, 200, 200] // rather than
'[100, 100, 200, 200]'

If you can't change the input format, at least you can parse it using $.parseJSON before passing it to Jcrop:

var crop_position = $.parseJSON(user.data.crop_position);

Edit: If necessary (double quotes are actually present in the string value), you can use $.parseJSON twice, first to decode the encoded string value and second to decode the array within the encoded string:

    var crop_position = $.parseJSON($.parseJSON(user.data.crop_position));

Or just strip off the surrounding double quotes before $.parseJSON:

    var crop_position = $.parseJSON(user.data.crop_position.slice(1, -1));    
甜警司 2024-10-09 10:15:28

setSelect - array [ x, y, x2, y2 ] 设置初始选择区域

因此,您需要一个数组而不是 setSelect 的字符串。为什么不将 user.data.crop_position 本身设为数组?如果无法更改表示形式,您可以使用简单的算法进行转换:

var pos  = '"[ 100, 100, 200, 200 ]"'; // user.data.crop_position
var crop_position = pos.replace(/["\[\] ]/g, '').split(',');
for (var i = crop_position.length; i--;) {
  crop_position[i] = +crop_position[i]; 
}

现在您得到了一个值数组而不是字符串。

setSelect - array [ x, y, x2, y2 ] Set an initial selection area

So you need an array not a string for setSelect. Why don't you make user.data.crop_position an array itself? If there is no way to change the representation you can do the conversion with a simple algorithm:

var pos  = '"[ 100, 100, 200, 200 ]"'; // user.data.crop_position
var crop_position = pos.replace(/["\[\] ]/g, '').split(',');
for (var i = crop_position.length; i--;) {
  crop_position[i] = +crop_position[i]; 
}

Now you've got an array of values instead of a string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文