Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何区分字符串对象';从它的内容来看,它的真实属性是什么?_Javascript_Object - Fatal编程技术网

Javascript 如何区分字符串对象';从它的内容来看,它的真实属性是什么?

Javascript 如何区分字符串对象';从它的内容来看,它的真实属性是什么?,javascript,object,Javascript,Object,考虑以下代码: var str = new String("a"); str["prop"] = "b"; str[1] = "c"; for (var i in str) { if (str.hasOwnProperty(i)) console.log(i + " = " + str[i]); } 输出将是: 1 = c 0 = a prop = b a 那么,如何确定“b”和“c”是“真实”属性(即不是实际字符串的一部分),而“a”是该字符串的一部分 编辑:代

考虑以下代码:

var str = new String("a");
str["prop"] = "b";
str[1] = "c";

for (var i in str)
{
    if (str.hasOwnProperty(i))
        console.log(i + " = " + str[i]);
}
输出将是:

1 = c
0 = a
prop = b
a 
那么,如何确定“b”和“c”是“真实”属性(即不是实际字符串的一部分),而“a”是该字符串的一部分

编辑:代码不完整

部分字符串是不可写属性,其数字名称小于字符串长度

for (var i in str) {
    if (!Object.prototype.hasOwnProperty.call(str, i)) continue;
    if (/0|[1-9]\d+/.test(i) && +i<str.length) continue;
    // or String(i>>>0)===i && …

    console.log(i + " = " + JSON.stringify(str[i]));
}

// Output:
1 = "c"
prop = "b"
for(str中的变量i){
如果(!Object.prototype.hasOwnProperty.call(str,i))继续;
如果(/0|[1-9]\d+/.test(i)&&&+i>>0)==i&&…
console.log(i+“=”+JSON.stringify(str[i]);
}
//输出:
1=“c”
prop=“b”

你到底从哪里得到
1=c
?只需要从0键得到整数。对不起,我忘了在codeAmine中添加“c”位,这是什么意思?