使用JavaScript将字符串转换为字符数组

Convert a string into a character array using JavaScript

本文关键字:字符 数组 转换 字符串 JavaScript 使用      更新时间:2023-09-26

继续我的Javascript-更改的单选按钮

这是我的代码:

<html>
<head>
<script type="text/javascript"> 
    function Change(radio)
    {
    for(i = 1; i <=3; i++)
    {
        if(i == radio.value)
        {
            setvalue = "Y";
            value = setvalue;
            radiovalue = radio.value;
        }
        else
       {
            setvalue = "N";
            value = setvalue;
            radiovalue = radio.value;
       }
       ChangeValue(setvalue,value);
    }
    function ChangeValue(setvalue,value)
    {
        var getvalue = value;
        document.write(getvalue);
    }
}
</script>
</head>
<body>
<?php
for($i = 1; $i <= 3; $i++)
{
?>
    <input type="radio" name="choice" value="<?php echo $i;?>" onchange="Change(this)"      /><br />
<?php   
}
?>
</body>
</html>

从上面的代码中,如果我点击了第一个单选按钮,那么输出就是YNN
现在我想用逗号(YNN)分隔该值,并将结果放入一个数组("Y"、"N"、"N")中

我在ChangeValue函数中写了以下内容:

function ChangeValue(setvalue, value)
{
     var getvalue = value;
     document.write(getvalue);
     var seperate = new array();
     seperate = getvalue.spilt(",");
}

然而,上面的代码并没有将我的值放入数组中
我做错了什么?有解决这个问题的办法吗?

您必须将字符串split作为数组中的单独字符。

var str = 'YNN'; //or whatever
var strWithComma = str.split(''); //to char array

在此之后,您可以将字符join转换为一个新的字符串以进行显示输出。

var str = 'YNN';
var strWithComma = str.split('').join(','); //'YNN' (string) --> ['Y','N','N'] (string/char array) --> "Y,N,N" (string)

希望这能帮助

演示

JavaScriptString对象有一个split方法,它可以执行您的请求。它根据指定的分隔符对字符串进行分区,并在每个分区的索引处返回一个数组。如果使用空白(空字符串)分隔符进行拆分,则将字符串标记为各个字符。

要将单选按钮的值作为字符串获取,可以对它们进行迭代,并检查每个单选按钮的value属性。

var input = "YNN"
var result = input.split(''); // returns ["Y", "N", "N"]

var valStr = "";
function main() {
    var radioBtns = document.getElementsByName("choice");
    for (var i = 0; i < radioBtns.length; i++) {
        radioBtns[i].onchange = valChange;
    }
    valStr = Array(radioBtns.length + 1).join("N")
}
function valChange(event) {
    var changedElem = event.target;
    var elemValue = changedElem.value;
    var elemIdx = +elemValue - 1;
    var resultStr = replaceChar(valStr, elemIdx, 'Y');
    getElem("outputStr").innerHTML = resultStr;
    getElem("outputArr").innerHTML = resultStr.split('');
}
function replaceChar(str, idx, chr) {
    return str.substr(0, idx) + chr + str.substr(idx + chr.length);
}
function getElem(id) {
    return document.getElementById(id);
}
window.onload = main;
span[id^="output"] {
    border: 2px solid black;
    margin: 2px;
    width: 50px;
}
div {
    margin-top: 7px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Select an option:
<br />
<input type="radio" name="choice" value="1" />
<br />
<input type="radio" name="choice" value="2" />
<br />
<input type="radio" name="choice" value="3" />
<div>String Output: <span id="outputStr"> </span>
</div>
<div>Array Output: <span id="outputArr"> </span>
</div>