首页 新闻 会员 周边 捐助

改变数组的值再返回到原来的位置

0
悬赏园豆:10 [已解决问题] 解决于 2019-04-24 09:07

例如:
var ary=["a","1b","2c","3d","e","f","g"];

将数组中包含数字的字符串拿到,再把符合条件的字符改变了他们的值,然后把符合条件的值改了,再让他们返回到ary这个数组中;

我想知道怎么把数组里字符串的值改了,再返回到原来的位置。。。
数组不是写死的,数组的数量也不是固定的

密码剪头刀的主页 密码剪头刀 | 初学一级 | 园豆:103
提问于:2019-04-22 21:46
< >
分享
最佳答案
1

你的文字有非常生硬的翻译味道,我按照自己的理解写了个demo,你看看吧:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title> 
    <script type="text/javascript">
        window.onload = function () {
            var ary = ["a", "1b", "2c", "3d", "e", "f", "g"];
            for (var i = 0; i < ary.length; i++) {
                if (!isNum(ary[i])) { // 排除不包含数字的字符串
                    continue;
                }
                //假设 包含 1 和 b
                if (ary[i].indexOf("1") >= 0 && ary[i].indexOf("b") >= 0) {
                    ary[i] = "2b";// 直接修改,保证字符串还是在原来的位置
                }
                //假设 包含 2 和 c
                if (ary[i].indexOf("2") >= 0 && ary[i].indexOf("c") >= 0) {
                    ary[i] = "400cc";
                }
                //假设 包含 3 和 d
                if (ary[i].indexOf("3") >= 0 && ary[i].indexOf("d") >= 0) {
                    ary[i] = "36d";
                }
            }
            //打印 看是否预想的结果
            for (var i = 0; i < ary.length; i++) {
                console.log(ary[i]);
            }

            //是否包含数字
            function isNum(val) {
                var matches = val.match(/\d+/g);
                if (matches != null) {
                    return true;
                }
                return false;
            }
        };
    </script>
</head>
<body>
</body>
</html>
收获园豆:10
三人乐乐 | 老鸟四级 |园豆:4823 | 2019-04-23 11:15

我怀疑问主是智能机器人

会长 | 园豆:12463 (专家六级) | 2019-04-23 11:21

@会长: 真的像

三人乐乐 | 园豆:4823 (老鸟四级) | 2019-04-23 11:25

@会长: 我觉得是个大学生,表述不清,目的也不明确,很像啊

刘下来 | 园豆:919 (小虾三级) | 2019-04-23 11:32

var str=["1千","12万","4千","1万","6千"];

for(var i=0;i<str.length;i++){
    var data=str[i];
    if(typeof data=="string"){
        if(data.slice(-1)=="千"){
            data.replace("千","000");
            console.log(data)
        }
    }
}

我想把千单位改成1000,把万改成10000

密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 11:55

@密码剪头刀:

<script type="text/javascript">
    var str = ["1千", "12万", "4千", "1万", "6千"];
    str = str.toString().replace(/[千]/g, '000').replace(/[万]/g, '0000');//替换所有指定字符串
    var newStr = str.split(',');//字符串转数组
    for (var i = 0; i < newStr.length; i++) {
        console.log(newStr[i]);//打印
    }           
</script>
三人乐乐 | 园豆:4823 (老鸟四级) | 2019-04-23 13:43

@三人乐乐: 谢了

密码剪头刀 | 园豆:103 (初学一级) | 2019-04-24 09:03

@密码剪头刀: var str = ["1万3千", "10万","1千", "4万3千", "1万", "1万8千"];

怎么输出:["13000", "100000","1000", "43000", "10000", "18000"];
这样的怎么转呢? 万单位加千单位的值

密码剪头刀 | 园豆:103 (初学一级) | 2019-04-25 09:05
其他回答(3)
1

几个概念清楚后,你就知道如何做了
1 数组如何遍历
2 获取数组中的某个元素
3 数组元素是值还是引用
4 数组元素的赋值覆盖

2012 | 园豆:21645 (高人七级) | 2019-04-23 08:14
0

"再把符合条件的字符改变了他们的值,然后把符合条件的值改了",兄弟,你语文肯定没及格过吧。这句话我是没看懂

会长 | 园豆:12463 (专家六级) | 2019-04-23 08:17

“将数组中包含数字的字符串拿到,再把符合条件的字符改变了他们的值,然后把符合条件的值改了” 这样读

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 10:49

@密码剪头刀: 我还是没读懂。要不你举个例子

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2019-04-23 11:03

@会长: 通过条件判断获取数组中符合的值,把符合条件的值改变成别的值,再返回到原来的位置

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 11:18

var str=["A","a","C1","B","E1","F"];
for(var i=0;i<str.length;i++){
var data=str[i];
if(typeof data=="string"){
if(data.slice(-1)==1){
console.log(data)
}
}
}

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 11:22

var str=["1千","12万","4千","1万","6千"];

for(var i=0;i<str.length;i++){
    var data=str[i];
    if(typeof data=="string"){
        if(data.slice(-1)=="千"){
            data.replace("千","000");
            console.log(data)
        }
    }
}

就是把数字里的千改成1000,把万改成10000

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 11:56
0

看了三四遍,硬是没看明白你想干嘛?目的是什么

刘下来 | 园豆:919 (小虾三级) | 2019-04-23 08:40

通过条件判断获取数组中符合的值,把符合条件的值改变成别的值,再返回到原来的位置

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 10:52

@密码剪头刀: 判断条件是什么,如何改变

支持(0) 反对(0) 刘下来 | 园豆:919 (小虾三级) | 2019-04-23 11:09

@iiiiiim: 举个例子:遍历数组,再判断字符串里是否包含数字,如果有把数字改成中文,

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 11:17

@密码剪头刀:

var arr = ["a", "1b", "2c", "3d", "e", "f", "g"];
arr = arr.map(function(x) {
    if (x.match(/\d+/) != null) {
        x = x.replace(x.match(/\d+/), "中文");
    }
    return x;
});
console.log(arr);
支持(0) 反对(0) 刘下来 | 园豆:919 (小虾三级) | 2019-04-23 11:30

@iiiiiim: var str=["1千","12万","4千","1万","6千"];

for(var i=0;i<str.length;i++){
    var data=str[i];
    if(typeof data=="string"){
        if(data.slice(-1)=="千"){
            data.replace("千","000");
            console.log(data)
        }
    }
}

就是把数组里的千改成1000,把万改成10000

支持(0) 反对(0) 密码剪头刀 | 园豆:103 (初学一级) | 2019-04-23 11:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册