javascript中有沒有像指向字串的指標這樣的概念?或者這將如何完成?
let s1 = "hi";
let s2 = "bye";
// I want to write my code like this [,].forEach();
// This is the bit where I want s1 and s2 in the [,] array to actually be pointers to a string
[s1,s2].forEach(s => {if(s.length < 3) s = "*";});
// I want console.log(s1) === "hi*"
// I want console.log(s2) === "bye" (unchanged)
uj5u.com熱心網友回復:
Javascript沒有指標。
但是您可以將一個值包裝在一個物件中并傳遞對該物件的參考。
let s1 = { value: "hi" };
let s2 = { value: "bye" };
[s1,s2].forEach(s => {
if(s.value.length < 3) s.value = "*";
});
console.log(s1.value)
console.log(s2.value)
這可能是您最接近這種行為的方式。
uj5u.com熱心網友回復:
除非您特別參考該識別符號,否則您不能重新分配單個識別符號。所以給定
let s1 = "hi";
顯示其他內容的唯一方法console.log(s1)是撰寫一行代碼
s1 = // something else
當然,字串是不可變的——對于一個字串,你必須重新分配它,因為你不能改變它。
我想您可以將字串放入陣列或物件中,然后改為檢查:
const strings = {
s1: 'hi',
s2: 'bye',
};
for (const [key, str] of Object.entries(strings)) {
if (str.length < 3) {
strings[key] = '*';
}
}
console.log(strings.s1);
uj5u.com熱心網友回復:
我想我自己找到了解決方案。
有人可以評論這是否是好的做法嗎?
它使用 ES6 中的新事物,您可以在其中分配事物[s1, s2] =
let s1 = "hi", s2 = "bye";
[s1, s2] = [s1, s2].map(s => s (s.length < 3 ? "*" : ""));
uj5u.com熱心網友回復:
在 javascript 中沒有“指標”,訪問區域變數的唯一方法是通過 evil 函式eval():
{
let s1 = "hi";
let s2 = "bye";
["s1","s1"].forEach(s => {
let n = eval(s);
if (n.length < 3)
eval(s ' = "*"');
});
console.log(s1,s2);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/480175.html
標籤:javascript 指针
