for-loopで配列にランダムなインデックスを追加する機能を作っていますが、値は常に異なる必要がありますが、何らかの理由で(関数呼び出し) unique
- 配列と同じ値をフィルタリングしようとしていますunique
- 配列unique
-arrayとオリジナル - 同じ長さの配列 - unique
- 配列の長さがunique
- 配列の長さよりも小さい - answerId
の値が変更されます。しかし、これらの配列は、同じ値がanswerId
-arrayに入っていても、実行が残りのfor-loops(for-loopsはかなりのハックコード)に渡すことはできません。私が間違っていることは何ですか?申し訳ありませんが私の英語のスキルが良くない場合。配列内に同じランダム値を追加するのを防ぐ
getJSONData(){
var answerId = [null, null, null, null];
var length = Object.keys(Company.person).length;
for(var i = 0; i <= answerId.length - 1; i++){
answerId[i] = [Math.floor(Math.random() * length)]
}
let unique = Array.from(new Set(answerId))
console.log(unique.length)
if (unique.length < answerId.length){
for(var i = 0; i <= answerId.length - 1; i++){
answerId[i] = [Math.floor(Math.random() * length)]
}
console.log("new values 1")
unique = Array.from(new Set(answerId))
if (unique.length < answerId.length){
for(var i = 0; i <= answerId.length - 1; i++){
answerId[i] = [Math.floor(Math.random() * length)]
}
console.log("new values 2")
unique = Array.from(new Set(answerId))
if (unique.length < answerId.length){
for(var i = 0; i <= answerId.length - 1; i++){
answerId[i] = [Math.floor(Math.random() * length)]
}
console.log("new values 3")
unique = Array.from(new Set(answerId))
if (unique.length < answerId.length){
for(var i = 0; i <= answerId.length - 1; i++){
answerId[i] = [Math.floor(Math.random() * length)]
}
console.log("new values 4")
}
}
}
}
var personArray = [Company.person[answerId[0]].firstName + ' ' + Company.person[answerId[0]].lastName, Company.person[answerId[1]].firstName + ' ' + Company.person[answerId[1]].lastName, Company.person[answerId[2]].firstName + ' ' + Company.person[answerId[2]].lastName, Company.person[answerId[3]].firstName + ' ' + Company.person[answerId[3]].lastName];
return personArray;
}
'JSON-indexes'何ですか? [JSON](http://json.org/)は、シリアル化されたデータを表す文字列です。 –
私はJson-mentioningを質問から削除しました。 –
データを追加することもできます。 –